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

2023/01/04 00:36:32

MixJuice GET URL : kidspod.club/mj/2162

スクロールパックマン敵あり

■説明
パックマン風のゲームです。
「・」を全部食べるとクリアです。
「・」は161個あります。
クリアするとクリアタイムが表示されます。
移動は左右と上です。下には移動できません。
上に移動すると、一番下のラインが一番上に来ます。
敵は5匹います。
敵に当たるとゲームオーバーです。
敵の動きにはルールがあるので、うまく避けてください。

■操作
 ↑
← →

■変数
A 面の描写時に使用(キャラコード)
D 自分の向き
E 移動増減(X)
F 移動増減(Y)
I FOR
J I+1
K I+2
L I+3
M INKEY
P 面の描写時に使用(X座標)、自分の移動前X座標
Q 面の描写時に使用(Y座標)
S SCORE
T 敵の数-1
U エサのキャラコード 165
X 自分のX座標
Z エサがあるかのチェック

■プログラム
10 初期設定
20 面作成
30 自分表示、キー入力チェック、自分の向き処理、スコア処理
40 クリア処理
50 敵消し
60 自分消し、スクロール処理、敵のY座標+1
70-90 敵移動、敵表示(重ね合わせ処理)
100 当たり判定
110 スクロールした場合の自分消し、30からを繰り返す
120 GAMEOVER
130 秒数表示

■改造
残り容量が少ないので改造は難しいです。
10行のTを増やすと敵が増えます。敵の数はT+1匹になります。
多分Tは21まで増やせますが、凄く遅くなると思います。
アプリ版のichigojamなら早く動くかもしれません。

  • 1
  • 1

SOURCE CODE

10 CLV:T=4:CLP:CLS:COPY#770,#768,8:LET[90],16062,128,27627,2056,15838,128,31407,672,16062:X=1:D=1:U=165:FORI=0TOT*4STEP4:[I]=RND(15)+1:[I+1]=0:[I+2]=1-RND(2)*2:[I+3]=0:NEXT
20 FORI=0TO19:LC0,I:?CHR$(6):LC16,I:?CHR$(6):NEXT:FORI=0TO149:P=I%15+1:Q=I/15+1:A=U-[I/15+90]>>(I%15)&1*159:LCP,Q:?CHR$(A):LCP,20-Q:?CHR$(A):NEXT:CLT
30 @B:LCX,19:Z=SCR():?CHR$(252-D):P=X:M=INKEY():E=(M=29)-(M=28):F=(M=30)*(SCR(X,18)!=6):D=D*!E+E:X=X+E*(SCR(X+E,19)!=6):S=S+(Z=U)
40 LC1,22:?S;"/161":IFS=161?"CLEAR!":GOTO@F
50 FORI=0TOT*4STEP4:LC[I],[I+1]:?CHR$([I+3]):NEXT
60 IFFLCX,19:?" ":COPY#B9F,#B7F,-640:COPY#920,#B80,17:FORI=1TOT*4+1STEP4:[I]=[I]+!![I]:NEXT
70 FORI=0TOT*4STEP4:J=I+1:K=I+2:L=I+3:IFSCR([I],[J]+1)!=6[J]=[J]+1ELSEIFSCR([I]+[K],[J])=6[K]=-[K]ELSE[I]=[I]+[K]
80 LC[I],[J]:IFSCR()=U||SCR()=238[L]=U:?CHR$(238)ELSE[L]=0:?CHR$(237)
90 NEXT:FORI=0TOT*4STEP4:J=I+1:IF[J]>20LC[I],[J]:?" ":[I]=RND(15)+1:[J]=0:[I+2]=1-RND(2)*2:[I+3]=0
100 IF[I]=X&&[J]=19GOTO@E
110 NEXT:LCP,19+F:?" ":GOTO@B
120 @E:?"GAME OVER
130 @F:?TICK()/60;"S

COMMENT

Kidspod運営チーム
Kidspod運営チーム2023/01/06 18:11:07

すごい! まさしくパックマン! しかも上方向にどんどん登っていくんですね。これは面白い……。そして敵がつよい……。ハラハラドキドキがたまりませんね。