Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2017/10/07 13:55:10

MixJuice GET URL : kidspod.club/mj/381

インベーダーゲーム

インベーダーゲームです

■動作制限
Ichigojam BASIC 1.2.2以上で動作します。
1.2.1以下だとおそらく動作しません。

■ゲーム説明
敵は弾を撃ちません。だんだん近づいてくるだけです。
自機の段まで敵が来たらゲームオーバーです。
すべて倒すと次の面になり、敵が少し早くなります。
文字サイズを大きくしています。
元に戻すにはVIDEO1として下さい。

■操作
←→:移動
スペース:弾を撃つ

■ヒント
上手に倒さないと1面すらクリアできません。
倒し方を工夫しましょう。

■変数表
プログラムを作るときは、いつもこんな変数表を用意しています。
今回は、このプログラムを作るときに使っていた変数表を公開します。

A 右移動COPYで使用(メモリコピー 数Aアドレスへ数Bのアドレスから数Cの長さ分コピー(数Cマイナスでコピー方向が逆になる)
B 右移動COPYで使用
C 右移動COPYで使用
D 敵の移動方向 1:右方向 -1:左方向
E 最上段の敵のY座標
F 左移動COPYで使用(メモリコピー 数Fアドレスへ数Gのアドレスから数Hの長さ分コピー(数Hマイナスでコピー方向が逆になる)
G 左移動COPYで使用
H 左移動COPYで使用
I FORループで使用
J 自機のラインに敵がいるかのチェックに使用
K INKEY
L 敵の速さ調整(カウント用)
M 下移動COPYで使用(メモリコピー 数Mアドレスへ数Nのアドレスから数Oの長さ分コピー(数Oマイナスでコピー方向が逆になる)
N 下移動COPYで使用
O 下移動COPYで使用
P 敵の速さ調整(面クリすると減っていく(早くなる))
Q
R
S SCORE
T 面クリフラグ 0:クリアしてない 1:クリアした
U
V 弾のスピード調整用
W 弾のX座標
X 自機、X座標
Y 弾のY座標
Z 弾発射中フラグ 0:未発射 1:発射中

2018/2/23 80行が2個あったのをこっそり修正

  • 1
  • 1

SOURCE CODE

1 'インベーダーゲーム
10 CLV:VIDEO3:P=80:X=7
20 @H:CLS:?"SCORE:";S:A=#95F:B=A-1:C=-48:D=1:E=3:F=#930:G=F+1:H=47:M=#96F:N=M-16:O=-64:J=0:Z=0:P=P-10:T=0:FORI=0TO17:LCI%6*2,I/6+E:?CHR$(237):NEXT
30 @A:IFTLC2,4:?"C L E A R !!":WAIT120:GOTO@H
40 IFSCR((D=1)*14,E)=237||SCR((D=1)*14,E+1)=237||SCR((D=1)*14,E+2)=237GSB@D:GOTO@B
50 IFD=1GSB@RELSEGSB@L
60 @B:K=INKEY():IFKLCX,10:?" "
70 X=X-(K=28)*(X>0)+(K=29)*(X<14):LCX,10:?CHR$(240):IFK=32&&!ZY=10:W=X:Z=1
80 IF!ZGOTO@C
90 IFVGOTO@E
100 GSB@F:Y=Y-1:IF!YZ=0:GOTO@C
110 GSB@G
120 @E:V=V-1:IFV<0V=10
130 @C:L=L-1:IFL<0L=P:GOTO@A
140 GOTO@B
150 @R:GSB@F:COPYA,B,C:GSB@G:RTN
160 @L:GSB@F:COPYF,G,H:GSB@G:RTN
170 @D:GSB@F:COPYM,N,O:GSB@G:FORI=0TO14:J=J+(SCR(I,10)=237):NEXT:IFJLC0,1:?"GAME OVER":END
180 E=E+1:A=A+16:B=B+16:F=F+16:G=G+16:M=M+16:N=N+16:D=-D:IFE>7A=A-16:B=B-16:C=C+16:H=H-16:M=M-16:N=N-16:O=O+16
190 RTN
200 @F:IFZLCW,Y:?" "
210 RTN
220 @G:LCW,Y:IFZ&&SCR(W,Y)=237?CHR$(244):Z=0:S=S+10:LC0,0:?"SCORE:";S:WAIT15:LCW,Y:?" ":T=(S%180=0):RTN
230 IFZ?CHR$(242)
240 RTN

COMMENT

Kidspod運営チーム
Kidspod運営チーム2017/10/13 16:59:59

完璧にインベーダーゲームですね。弾を外してしまったときのドキドキ感も健在です。お見事です! 名古屋撃ちはやはり強力でした! 変数の役割まで公開していただいて、ありがとうございます。