7/14 プログラミング寺子屋(IchigoJam)@小樽

かいぞうプログラム

・IchigoJam命令を短縮形に置き換えました(全体)
・ボタン判定のロジックを変更して、プログラムを短くしました(110,120行目)
・自機が上下できるように、機能を追加しました(125行目 ※試すときはコメント’を消してください)
・自機の形を文字の”A”から、宇宙船🚀の形に改良しました(130行目)
・ゲーム終了をプロンプトから、無限ループに改良しました(158行目) ※ゲーム終了は[ESC]キー、再開は[X]キーを押す
・UFOの動きのロジックを変更して、プログラムを短くしました(190〜210行目)
・UFOがミサイルで自機を攻撃してくるように、機能を追加しました(225行目 ※試すときはコメント’を消してください ※サブルーチンは234-239行目)
・UFO出現で得点表示がきえてしまうことがある不具合を直しました(72,395行目)

10 ‘SHOOTING nextday2024
20 CLS:CLV
50 X=RND(31):Y=22
72 U=RND(31):V=2
74 LC U,V:?CHR$(241);

80 ‘GAMELOOP
90 LC X,Y:?” “;
110 X=X-BTN(28)*(X>0)+BTN(29)*(X<31)
125 ‘Y=Y-BTN(30)*(Y>0)+BTN(31)*(Y<22): ‘課題「自機を上下させる」
130 LC X,Y:?CHR$(#F0);
142 IF BTN(32) GSB240
145 GSB160
150 IF V<Y GOTO80
152 BEEP 30,30:LC12,12:?”GAME OVER”
158 IF BTN(88) RUN ELSE CONT

160 ‘UFO sub

165 IF RND(5) RTN
170 LC U,V:?” “;
190 C=RND(3)
192 U=U-(C==1)*(U>0)+(C==2)*(U<31)
200 C=RND(3)+!RND(5)
201 V=V-(C==1)*(V>2)+((C&2&&1)+(C==3))*(V<23)
210 LC U,V:?CHR$(241);
225 ‘IF !RND(10) GSB233: ‘課題「UFOがミサイルで反撃する」
230 RTN

234 ‘Counterattack sub
235 FOR C=V+1 TO Y
236 LC U,C:?”#”;:WAIT2
237 LC U,C:?” “;:NEXT
238 IF X==U V=23
239 RTN

240 ‘BEAM sub
250 FOR C=Y-1 TO V STEP -1
270 LC X,C:?”|”;:WAIT2
290 LC X,C:?” “;:NEXT
320 IF X==U GSB330
325 RTN

330 ‘HIT sub
340 BEEP3,20:LC U,V:?”*”;
362 S=S+10:LC1,0:?”TOKUTEN=”;S
370 WAIT 20:LC U,V:?” “;
395 U=RND(20):V=2
400 RTN

変数の説明
X,Y 自機の位置
U,V UFOの位置
C 自機のミサイルを動かすときのY座標
 ※UFOの移動や反撃ミサイルの動きの座標計算用と兼用
S 得点

※この、「かいぞうぷろぐらむ」も完璧ではありません。
いろいろな問題や不具合が残っています。
ゲーム性(スピードやタイミング)にも不満が残るでしょう。
これらを発見し、改良して、きみだけの最高ゲームをつくろう。