LoginSignup
1
0

More than 5 years have passed since last update.

数字消し(思考型ゲーム)

Posted at

■数字消し(思考型ゲーム)
 カーソルを移動させて数字を加算していきます。10になると0に戻りますが、11以上では移動できなくなります。移動不能になっても自動的に判別しないため行き詰まったらescキーでゲームを終了させてください。
 10行目で画面と変数とキャラクタをクリアしています。20行目ではカーソルの座標と点滅用変数の値を設定しています。30行目で数字をランダムに発生させ画面を埋め尽くすようにします。
 40行目でカーソル位置にある文字を読み出し48を引きます。これは数字の文字コードが48から始まるためです。文字が0なら0に、文字が5なら5に、文字が9なら9の数字になります。120行目〜150行目がカーソルの移動処理です。170行目では移動先の文字と現在の値と加算し移動できない場合は100行目に戻ります。移動可能な場合は値を0にしてカーソル位置を空白にします。あとは100行目に戻ってゲームを繰り返します。

●プログラム
10 CLS:CLP:CLV
20 X=15:Y=10:B=0
30 FOR I=1 TO 640:PRINT RND(4)+1;:NEXT
40 C=SCR(X,Y)-48
100 LOCATE X,Y
110 B=B+1:IF B%40<20 THEN PRINT C; ELSE PRINT CHR$(1);
120 K=INKEY()
130 IF K=0 THEN GOTO 100
140 E=X-(K=28)+(K=29)
150 F=Y-(K=30)+(K=31)
160 D=SCR(E,F)-48
170 IF D<0 OR (D+C)>10 THEN GOTO 100
180 IF (D+C)=10 THEN C=0:D=0:LOCATE E,F:PRINT " ";
190 C=C+D
200 LOCATE X,Y:PRINT " ";
210 X=E:Y=F
220 GOTO 100

●変数表
B カーソル点滅用のタイマー変数
X カーソルのX座標
Y カーソルのY座標
E カーソルの移動先のX座標
F カーソルの移動先のY座標
I 繰り返し(ループ)用変数
C 数字の合計
D カーソルの移動先の位置にある文字コード(変数Cに加算する数値)
K 入力されたキーコード

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0