5. 標準BASICプログラミング
それでは、F-BASICでプログラムをしましょう。では、てはじめに、簡単なゲームを作ってみましょう。BASICでは、簡単に誰でも、ゲームを作ることができます。昔は、ほとんどのフリーソフトがBASICで作られていたので、長年のパソコンの有識者の方に聞けばいろいろ知っていると思います。
'***************
'変数設定
'***************
var shared P(20) as string
まず、「'」をつけると、その行のそれ以降は無視されます。一応覚えておきましょう。
*FIRST
これは、ラベルと言って*をつけて適当な単語を書くと、あとで、
goto命令を使って、簡単にここに戻ってくることができます。
'***************
'タイトル表示
'***************
cls
locate 25,10
print "サンプルゲーム (何かキーを押して下さい。)"
まず、clsは画面の文字や絵をすべて消します。
'キーが押されるまで待つ
do
loop while inkey$=""
これは、よく使う命令です。
do〜loopはその間を繰り返し行います。
loopのあとにwhileをつけると、その条件が成立している間だけ繰り返します。
この場合は、inkey$=""の間。
inkey$とは、今キーボードで押されているキーのことです。
たとえば、inkey$="s"だと、sが押されている間ということになります。
inkey$=""とは、""と中に何もかかれていないので、
キーが押されていない間ということになります。
Y2=10
J=-60
S=0
ここでは、Y2という変数を10に、Jという変数を-60に、Sという変数を0にしています。
randomize time
randomizeとは、乱数を制御する命令です。
for A=0 to 20
P(A)=" "
next A
ここでは、配列変数を説明します。
*NYURYOKU1
locate 30,12
print " ";
locate 30,12
input "速さ[1速-30遅]";WAITTIME
if WAITTIME<1 or WAITTIME>30 then
locate 30,11
print "もう一度入力して下さい";
goto *NYURYOKU1
endif
locate 30,11
print " ";
*NYURYOKU2
locate 30,13
print " ";
locate 30,13
input "難易度[1難-50易]";NANDO
if NANDO<1 or NANDO>50 then
locate 30,11
print "もう一度入力して下さい";
goto *NYURYOKU2
endif
locate 30,11
print " ";
cls
do
if left$(P(Y2),1)="@" then
goto *BOM
endif
for A=0 to 20
if int(rnd(1)*220)>NANDO+150 then
B$="@"
else
B$=" "
endif
P(A)=right$(P(A),59)+B$
locate 5,A
print P(A);
next A
K$=inkey$
if K$="8" then
if Y2<= 0 then exit
D=Y2:Y2=Y2-1
endif
if K$="2" then
if Y2=>20 then exit
D=Y2:Y2=Y2+1
endif
if D<>-1 then
locate 3,D
print" "
D=-1
endif
locate 3,Y2
print"●"
'スコア表示
J=J+1
if J>9 then
locate 60,22
S=S+1
print S;"000 点"
J=0
if S>30000 then *CLEAR
endif
wait WAITTIME
if K$="q" or inkey$="Q" then
goto *end
endif
loop
*BOM
if Y2<= 0 then
locate 0,Y2
print "*******";
locate 0,Y2+1
print "*******";
locate 0,Y2+2
print "*******";
goto *end
endif
if Y2<=1 then
locate 0,Y2-1
print "*******";
locate 0,Y2
print "*******";
locate 0,Y2+1
print "*******";
locate 0,Y2+2
print "*******";
goto *end
endif
locate 0,Y2-2
print "*******";
locate 0,Y2-1
print "*******";
locate 0,Y2
print "*******";
locate 0,Y2+1
print "*******";
locate 0,Y2+2
print "*******";
*END
locate 30,9
print "***************"
locate 30,10
print "***GAME OVER***"
locate 30,11
print "***************"
'キーが押されるまで待つ
do
loop while inkey$=""
'最初に戻る
goto *FIRST
'30000以上になると計算できないのでクリア
*CLEAR
locate 30,9
print "****************"
locate 30,10
print "***CLEAR***"
locate 30,11
print "****************"
'キーが押されるまで待つ
do
loop while inkey$=""
'最初に戻る
goto *FIRST
連絡先くっきー
![]()