レースゲームタイプのアクションゲーム。5本のレーンを十字ボタン左右で行き来して、敵マシンを避けて進もう。
トップいる赤いマシンを追い抜けば晴れてレベルアップだが、たちまち新しいグループ相手の戦いになるぞ。
レベルにそってどんどんスピードアップするレースに挑戦だ!
Akueri
BASICはポケコン以来全く触った事が無く、C言語を少しやった位の知識でこのプログラムを懐かしいと思いながら作ってみました。ポケコンで初めてBASICを作っていた時よりも上達したプログラムが出来て良かったと思い、違う形式のプログラムにも挑戦してみたいです。
- @START
- CLS:CLEAR
- BGMSTOP
- DEBUG=0
- PX=11:PY=13
- ENE_MAX=5
- ENE_NUM = ENE_MAX*6+1
- DIM ENE_RNG(ENE_MAX)
- DIM EX(ENE_MAX),EY(ENE_MAX)
- ENE_YMAX=22
- LIMIT_L=7:LIMIT_R=15
- ST_POS=2:ST_FPS=11
- PJUNI = ENE_NUM:JUNI = ENE_NUM:LV=1:TEN=0
- LOCATE 6,0:PRINT”RACE GAME!!”
- FOR I = ST_POS TO 22 STEP 1
- LOCATE 6,I:PRINT”│ │ │ │ │ │”
- NEXT
- GOSUB @ENE_INIT
- GOSUB @PARM
- @MAIN
- IF DEBUG == 1 THEN GOSUB @DEBUG
- BOTAN = BUTTON()
- IF BOTAN AND 4 THEN GOSUB @MOV_L
- IF BOTAN AND 8 THEN GOSUB @MOV_R
- GOSUB @CHR_PRI
- FPS = ST_FPS - LV
- IF FPS < 1 THEN FPS = 1
- VSYNC FPS
- GOSUB @OVER_CHK
- GOSUB @PARM
- GOSUB @MOV_ENE
- GOTO @MAIN
- END
- @PARM
- COLOR 0
- LOCATE 20,1:PRINT”LEVEL ”;LV;
- LOCATE 21,10:PRINT” ”
- LOCATE 21,10:PRINT ;PJUNI;”/”;JUNI;
- LOCATE 27,10:PRINT”イ”
- LOCATE 21,20:PRINT ;TEN;
- LOCATE 25,20:PRINT” テン”
- RETURN
- @MOV_L
- LOCATE PX,PY:PRINT” ”
- PX=PX-2
- IF PX < LIMIT_L THEN PX = LIMIT_L
- BEEP 8
- RETURN
- @MOV_R
- LOCATE PX,PY:PRINT” ”
- PX=PX+2
- IF PX > LIMIT_R THEN PX = LIMIT_R
- BEEP 8
- RETURN
- @MOV_ENE
- LOCATE EX(0),EY(0):PRINT” ”
- FOR I = 0 TO ENE_MAX-2
- IF EY(I) > ENE_RNG(I) THEN LOCATE EX(I+1),EY(I+1):PRINT” ”
- NEXT
- BEEP 11
- IF EY(0) < ENE_YMAX THEN EY(0)=EY(0)+1
- FOR I = 0 TO ENE_MAX-2
- IF EY(I) > ENE_RNG(I) AND EY(I+1) < ENE_YMAX THEN EY(I+1)=EY(I+1)+1
- NEXT
- IF EY(ENE_MAX-1) == ENE_YMAX THEN GOSUB @ENE_INIT
- RETURN
- @CHR_PRI
- RED_FLG=0
- COLOR 0
- LOCATE PX,PY:PRINT”Ы”
- IF EY(0) < ENE_YMAX THEN LOCATE EX(0),EY(0):PRINT”Ы”
- FOR I = 0 TO ENE_MAX-2
- IF EY(I) > ENE_RNG(I) AND EY(I+1) < ENE_YMAX THEN LOCATE EX(I+1),EY(I+1):PRINT”Ы”
- NEXT
- IF PJUNI <= ENE_MAX AND EY(ENE_MAX-2) > ENE_RNG(ENE_MAX-2) THEN RED_FLG=1
- IF RED_FLG == 1 THEN COLOR 13:LOCATE EX(ENE_MAX-1),EY(ENE_MAX-1):PRINT”Ы”
- RETURN
- @ENE_INIT
- EQ_FLG=0
- FOR I = 0 TO ENE_MAX-1
- EX(I) = RND(PX) + LIMIT_L
- EY(I) = ST_POS
- IF EX(I) % 2 == 0 THEN EX(I)=EX(I)+1
- IF EX(I) > LIMIT_R THEN EX(I) = LIMIT_R
- ENE_RNG(I) = RND(4)+5
- NEXT
- FOR I = 0 TO ENE_MAX-2
- IF EX(I) == EX(I+1) THEN EQ_FLG=1
- NEXT
- IF EX(0) == EX(ENE_MAX-1) THEN EQ_FLG=1
- IF EQ_FLG == 1 THEN GOTO @ENE_INIT
- RETURN
- @OVER_CHK
- FOR I = 0 TO ENE_MAX-1
- IF PX == EX(I) AND PY == EY(I) THEN GOTO @GE_OVER
- IF PY == EY(I) AND EY(I) < ENE_YMAX THEN PJUNI=PJUNI-1:TEN=TEN+10
- NEXT
- IF PJUNI == 1 AND FPS != 1 AND EY(ENE_MAX-1) == ENE_YMAX-1 THEN LV=LV+1:PJUNI = ENE_NUM
- RETURN
- @GE_OVER
- CLS:COLOR 0
- LOCATE 7,9:PRINT”--- GAME OVER ---”
- LOCATE 8,15:PRINT”YOUR SCORE: ”;TEN;” テン”
- LOCATE 10,20:PRINT”PUSH A BOTAN”
- BGMPLAY 6
- @GE_LOOP
- BOTAN = BUTTON()
- IF BOTAN AND 16 GOTO @START
- GOTO @GE_LOOP
- @DEBUG
- LOCATE 20,ST_POS+10:PRINT”STA: ”;EX(ENE_MAX-1);
- RETURN