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

2018/08/05 17:09:52

MixJuice GET URL : kidspod.club/mj/536

クロスロード

クロスロード


●遊び方
 >ルール
 ここはあなたの街の主要幹線道路。
 なぜだかこの道路を渡り反対側へボールを運ぶ事になりました。
 画面下の「●」をカーソルキーの「UP」「DOWN」を操作し
 車に衝突させる事無く画面上へ運んで下さい。ボールは千鳥に
 動きます。車のスピード、ボールの動き、タイミングよく
 キー操作し運んで下さい。10点超える毎に車のスピードが
 早くなります。30点以上はスピードの変化はありません。

 >キー操作
 カーソルUP → ボールが上へ
 カーソルDOWN → ボールが下へ

 >その他
 キャラクターの勉強で作ってみました。(まだ完全にマスター
 できていませんが。。。)



●プログラムについて
 行番号5から180をSAVE1
 行番号300から580をSAVE2
 行番号600から670をSAVE3
 にそれぞれ保存しSAVE1からRUNして下さい。



●変数
 A=LEFT_CAR1 X軸
 B=LEFT_CAR1 Y軸
 C=LEFT_CAR2 X軸
 D=LEFT_CAR2 Y軸
 E=RIGHT_CAR1 X軸
 F=RIGHT_CAR1 Y軸
 G=RIGHT_CAR2 X軸
 H=RIGHT_CAR2 Y軸
 I=BALL X軸
 J=BALL Y軸
 K=SCORE
 L=NOKORI
 M=INKEY
 N=ROAD PATTERN UE,SHITA X軸
 O=ROAD PATTERN CENTER 繰返し
 P=ROAD PATTERN CENTER X軸
 Q=CAR速度 WAIT



●プログラムの説明
 SAVE1
 10 画面クリア、全変数クリア、全変数ゼロ、各変数初期設定
 20 車のパターン作成
 30 SAVE3へ(道路パターン表示)
 40 キー入力
 50-60 キーが押された時の判断
 70 画面下へボールが消えないための処理
 80-90 ボールの千鳥を作成
 100 SAVE2へ(あたり判定)
 110 渡り切った時の処理
 120-150 車が画面から消えた時に初期位置に戻す処理
 160 SAVE2へ(車を走らせる)
 170 GAME OVER時にスコアとボール残数を表示
 180 プログラム終了
 (SAVE1にENDをおくと引続きRUNのみでリトライできる)

 SAVE2
 310 ボール表示
 320-350 車表示
 360 スコア、ボール残数表示
 370 ボール消去
 380-410 車消去
 420 各車の動き
 430-460 車が画面から消えた時の処理
 470 ボールが画面上から消えた時の処理
 510-540 ボールのあたり判定
 550 メインループに戻す
 560 ボールが車と衝突した時の処理
 570 GAME OVERかどうか判定
 580 GAME OVER処理

 SAVE3
 610 画面クリア、中央線の変数初期化
 620-630 上下のライン表示
 640-650 センターライン表示
 660 10点、20点、30点で車の速度を変更
 670 メインループに戻す

  • No registered tag exist.
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

SOURCE CODE

5'cross road P1
10 CLS:CLP:CLV:A=28:B=4:C=28:D=8:E=3:F=16:G=3:H=20:I=16:J=24:L=3:Q=30
20 POKE #700,3,7,6,12,12,12,12,12,255,255,60,24,24,24,24,24,192,224,96,48,48,48,48,48,31,63,127,225,204,222,222,12,255,255,255,255,255,255,255,0,248,252,254,135,51,123,123,48
30 LRUN 3,600
40 M=INKEY()
50 IF M=30 THEN CLK:J=J-4
60 IF M=31 THEN CLK:J=J+4
70 IF J>24 THEN J=24
80 IF J=20 OR J=12 OR J=4 THEN I=12
90 IF J=24 OR J=16 OR J=8 OR J=0 THEN I=16
100 IF J=20 OR J=16 OR J=8 OR J=4 THEN LRUN 2,500
110 IF J=0 THEN LC 12,12:PRINT "GOOD!!":BEEP 3,10:WAIT 12:BEEP 3,30:WAIT 70:K=K+1:LRUN 2,470
120 IF A<1 THEN LRUN 2,430
130 IF C<1 THEN LRUN 2,440
140 IF E>29 THEN LRUN 2,450
150 IF G>29 THEN LRUN 2,460
160 LRUN 2,300
170 LC 1,0:PRINT "SCORE=",K:LC 23,0:PRINT "BALL=",L;:LC 0,14
180 END



300 'cross road P2
310 LC I,J:?CHR$(#E9);
320 LC A,B:?CHR$(#E0,#E1,#E2);:LC A,B+1:?CHR$(#E3,#E4,#E5);
330 LC C,D:?CHR$(#E0,#E1,#E2);:LC C,D+1:?CHR$(#E3,#E4,#E5);
340 LC E,F:?CHR$(#E0,#E1,#E2);:LC E,F+1:?CHR$(#E3,#E4,#E5);
350 LC G,H:?CHR$(#E0,#E1,#E2);:LC G,H+1:?CHR$(#E3,#E4,#E5);
360 LC 1,0:PRINT "SCORE=",K:LC 23,0:PRINT "BALL=",L;:WAIT Q
370 LC I,J:PRINT" ";
380 LC A,B:?"   ";:LC A,B+1:?"   ";
390 LC C,D:?"   ";:LC C,D+1:?"   ";
400 LC E,F:?"   ";:LC E,F+1:?"   ";
410 LC G,H:?"   ";:LC G,H+1:?"   ";
420 A=A-RND(4):C=C-RND(4):E=E+RND(4):G=G+RND(4):LRUN 1,40
430 A=29:LRUN 1,40
440 C=29:LRUN 1,40
450 E=-3:LRUN 1,40
460 G=-3:LRUN 1,40
470 J=24:LRUN 3,600
500 'ATARI HANTEI
510 IF J=20 AND G>=9 AND G<=11 THEN GOTO 560
520 IF J=16 AND E>=14 AND E<=16 THEN GOTO 560
530 IF J=8 AND C>=14 AND C<=16 THEN GOTO 560
540 IF J=4 AND A>=9 AND A<=11 THEN GOTO 560
550 LRUN 1,120
560 LC I,J:PRINT CHR$(244):BEEP 50,50:WAIT 50:L=L-1
570 IF L!=0 THEN GOTO 470
580 LC 11,12:PRINT "GAME OVER":LRUN 1,170



600 'cross road P3
610 CLS:P=0
620 FOR N=0 TO 31
630 LC N,3:?CHR$(#91);:LC N,25:?CHR$(#91);:NEXT
640 FOR O=0 TO 14
650 P=P+2:LC P,13:?CHR$(#91);:NEXT
660 IF K=10 OR K=20 OR K=30 THEN Q=Q-10
670 LRUN 1,40

COMMENT