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

2019/10/11 22:51:29

MixJuice GET URL : kidspod.club/mj/916

ワンライン スタードライブ

障害物付きのドライブゲームです。操作は左右キーです。
左右のかべと障害物に当たらないように操作してください。
自機が動くのではなく、画面が動くようにしています。
スピードはじわじわと速くなっていきます。左下の数字が得点です。
ゲームスタート直後は、障害物が密集して出ますので注意してください。(第一関門!)

1行プログラムで作ってみました。
プログラムを行に分けると、こんな感じです。

10 CLS:CLV:X=9
20 FOR I=0 TO 33
30 R=RND(12)
40 LC X,0:? "!! !!" ← !!と!!の間はスペース9個です
50 LC X+R,-S%3:? "*"
60 M=BTN(29)-BTN(28)
70 SCROLL 2+M+4*!M
80 SCROLL 2
90 LC 15,23:I=SCR():? CHR$(#F0,20);S;
100 BEEP 8+S%9
110 X=X+R/4-1-M
120 S=S+(I=32)
130 WAIT S/4-900  ←WAITにマイナスの値を指定するすることで、WAIT時間を細かく指定しています
140 NEXT

さらに分かりやすく書くとこんな感じになります。

10 CLS:CLV:X=9
30 R=RND(12) ← Rの値を設定しています
40 LOCATE X,0:PRINT "!! !!" ← !!と!!の間はスペース9個です
50 IF S%3=0 THEN LOCATE X+R,0:PRINT "*"  ←障害物の出現頻度を3回に1度にすることで、難しすぎないようにしています
60 M=BTN(29)-BTN(28)
70 IF M=-1 THEN SCROLL 1
75 IF M=1 THEN SCROLL 3
80 SCROLL 2
90 LOCATE 15,23:I=SCR(15,23):PRINT CHR$(#F0);
95 LOCATE 0,23:PRINT S;
100 BEEP 8+S%9
110 X=X+R/4-1-M  ←Rの値は0~11なので、R/4は0,1,2のいずれかになります
120 IF I=32 THEN S=S+1
130 WAIT S/4-900  ←WAITにマイナスの値を指定するすることで、WAIT時間を細かく指定しています
140 IF I<33 THEN GOTO 30  ← 行に分けた場合、FOR/NEXTである必要はないので、IFとGOTOに変更しています

  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

SOURCE CODE

10 CLS:CLV:X=9:FORI=0TO33:R=RND(12):LCX,0:?"!!         !!":LCX+R,-S%3:?"*":M=BTN(29)-BTN(28):SCROLL2+M+4*!M:SCROLL2:LC15,23:I=SCR():?CHR$(#F0,20);S;:BEEP8+S%9:X=X+R/4-1-M:S=S+(I=32):WAITS/4-900:NEXT

COMMENT

Kidspod運営チーム
Kidspod運営チーム2019/10/18 17:29:51

おおっ! かっこいい! これだけの文字で宇宙感をしっかり出すところ、流石です。あと、障害物が全く出てこない裏道を発見しました!