IchigoJamでゲーム「いちご探し」を作ってみた。
(後から気付いたけど、今日は15日、いちごの日だった!)
ルール
ゲームを開始すると、画面にランダムな数字がたくさん表示される。
この数字の中から「1」を1個、「5」を5個、できるだけ早く探し出そう!
全て探し出せたらゲームクリアで、「10000 - かかった時間(TICK()
)」がスコアになる。
探し終わる前に時間が10000を超えてしまったらゲームオーバー。
操作方法
矢印キーまたはWASDキー:カーソルを移動
スペースキー:決定
※シリアル通信で操作する場合、Tera Term を使う場合など端末ソフトウェアによっては矢印キーが使えないことがある。この場合、WASDキーで操作する。
プログラム
10 ' イチゴ サガシ
20 C=1:[0]=RND(16*20)
30 P=RND(16*20):A=1
40 FOR I=0 TO C-1
50 IF [I]=P A=0
60 NEXT
70 IF A [C]=P:C=C+1
80 IF C<6 GOTO 30
90 FOR I=4 TO 0 STEP -1
100 FOR J=0 TO I
110 IF [J]>[J+1] T=[J]:[J]=[J+1]:[J+1]=T
120 NEXT:NEXT
130 C=0:P=0:S=RND(6):[6]=-1:CLS:FOR Y=0 TO 19
140 FOR X=1 TO 31 STEP 2
150 LOCATE X,Y
160 IF P=[C] ?5-4*(C=S);:C=C+1 ELSE V=RND(8):?V+(V>0)+(V>3);
170 P=P+1
180 NEXT:NEXT
190 X=0:Y=0:C=0:LOCATE 0,0:?CHR$(#E1);:CLT
200 T=TICK():IF T>10000 GOTO 370
210 K=INKEY()
220 IF K=LEFT OR K=#41 OR K=#61 Z=(X+15)%16:W=Y:GOTO 280
230 IF K=RIGHT OR K=#44 OR K=#64 Z=(X+1)%16:W=Y:GOTO 280
240 IF K=UP OR K=#57 OR K=#77 Z=X:W=(Y+19)%20:GOTO 280
250 IF K=DOWN OR K=#53 OR K=#73 Z=X:W=(Y+1)%20:GOTO 280
260 IF K=#20 GOTO 310
270 GOTO 200
280 LOCATE X*2,Y:?CHR$(0);
290 LOCATE Z*2,W:?CHR$(#E1);
300 X=Z:Y=W:GOTO 200
310 V=SCR(X*2+1,Y):IF V<>#31 AND V<>#35 GOTO 200
320 LOCATE X*2+1,Y:?CHR$(0);
330 LOCATE C,21:?CHR$(V);
340 C=C+1:IF C<6 GOTO 200
350 LOCATE 7,21:?"CLEAR! SCORE=";10000-T
360 END
370 LOCATE 7,21:?"TIME UP!"
解説
- 10行目:タイトル
- 20~80行目:探す対象を配置する位置をランダムに決定する (被ったらリトライすることで被らないようにする)
- 90~120行目:配置に使いやすいよう、探す対象の位置をソート (バブルソート) する
- 130~180行目:探す対象を配置する位置の中から「1」を配置する位置をランダムに選び、数字を配置する
- 190行目:カーソルの位置、見つけた数、時間を初期化する
- 200行目:現在時刻を記録し、タイムオーバーの判定をする
- 210~270行目:キー入力を処理する
- 280~300行目:カーソルを移動する
- 310~360行目:決定を処理する (見つけた数字を取り除き、クリアの判定と表示をする)
- 370行目:タイムオーバーの表示をする
実行結果
おわりに
※IchigoJamはjig.jpの登録商標です。