- ’┌──────────────┐
- ’│DOT-RACER v1.1│
- ’└──────────────┘
- VISIBLE 1,1,0,0,0,1
- CLS:COLOR 0
- GPAGE 0:GCOLOR 0:GCLS
- CLEAR
- DIM MYCHR$(4),VX(4),VY(4),CL(4)
- DATA ”Ь”,1,0,14
- DATA ”Э”,0,1,8
- DATA ”Ю”,-1,0,7
- DATA ”Ы”,0,-1,3
- FOR I=0 TO 3
- READ MYCHR$(I),VX(I),VY(I),CL(I)
- VX(I)=SGN(VX(I))
- VY(I)=SGN(VY(I))
- PRINT MYCHR$(I),VX(I),VY(I)
- NEXT
- ’---
- DIM E(16,16)
- _X=0:_Y=1:_C=2:_D=3
- _W=4:_WM=5
- ’---
- FL=0:RQ=FL:BGMW=FALSE
- GOSUB @TITINIT
- ’---
- @LOOP
- OLDB=B:B=BUTTON()
- ’
- GOSUB @FLOW
- ’
- VSYNC 1
- GOTO @LOOP
- END
- ’───────────────────────────
- @FLOW ’カ゛メンセンイ
- ’───────────────────────────
- IF RQ==FL GOTO @FLJUMP
- IF BGMW AND BGMCHK() THEN RETURN
- BGMW=FALSW
- ’--- アタラシイ カ゛メンヘ
- ON RQ GOSUB @TITINIT,@SSINIT,@GAMEINIT,@GOVINIT,@SCINIT
- FL=RQ
- ’--- カ゛メンコ゛トノショリヘ
- @FLJUMP
- ON FL GOTO @TIT,@SSTART,@GAME,@GOVER,@SCLEAR
- RETURN
- ’───────────────────────────
- ’
- ’───────────────────────────
- @ANYBUT
- R=FALSE
- IF OLDB THEN RETURN
- IF B==0 THEN RETURN
- R=TRUE
- RETURN
- ’---
- @SE
- P=(128/23)*X
- V=(100/23)*Y+27
- BEEP B,F,V,P
- RETURN
- ’───────────────────────────
- @TIT
- ’───────────────────────────
- GOSUB @TITPUT
- GOSUB @ANYBUT
- IF R==FALSE THEN RETURN
- BGMSTOP
- RQ=1
- RETURN
- ’---
- @TITINIT
- CLS:BGMPLAY 14
- STG=0
- @TITPUT
- I=(C/4) AND 7
- IF I>3 THEN I=7-I
- COLOR CL(I):C=C+1
- X=6:Y=8
- LOCATE X,Y+0:PRINT”┣┫┳┏┗╋┏ ┻┏┓┗┫┳┏━┣┏┻┏┓”
- LOCATE X,Y+1:PRINT”┛┻┻ ┛┻ ┏┻┠━┯┨┻ ┣┏┻┠━”
- LOCATE X,Y+2:PRINT”┯┗┃┠━┻ ┻┃┓┛┻┃┠┓┯┠┻┃┓”
- COLOR 9:X=8:Y=Y+7
- LOCATE X,Y:PRINT”PUSH ANY BUTTON!”
- COLOR 2:X=4:Y=Y+5
- LOCATE X,Y:PRINT”(C)2011 SmileBoom Co.Ltd.”
- RETURN
- ’───────────────────────────
- @SSTART
- ’───────────────────────────
- W=W-1:IF W<0 GOTO @_SIEND
- GOSUB @ANYBUT
- IF R==FALSE THEN RETURN
- @_SIEND
- RQ=2
- RETURN
- ’---
- @SSINIT
- CLS:BGMSTOP
- X=13:Y=11:W=60*1
- LOCATE X,Y:PRINT”Ready?”
- RETURN
- ’───────────────────────────
- @SCLEAR
- ’───────────────────────────
- GOSUB @ANYBUT
- IF R==FALSE THEN RETURN
- RQ=3
- RETURN
- ’
- @SCINIT
- CLS:BGMPLAY 9
- X=13:Y=11:W=60*1
- LOCATE X,Y:PRINT”CLEAR!”
- RETURN
- ’───────────────────────────
- @GOVER
- ’───────────────────────────
- GLINE MX*8,MY*8,RND(256),RND(256),RND(256)
- GCIRCLE MX*8,MY*8,RND(100)+2,RND(256)
- IF BGMCHK() THEN RETURN
- GOSUB @ANYBUT
- IF R==FALSE THEN RETURN
- GCLS
- RQ=0
- RETURN
- ’---
- @GOVINIT
- CLS:BGMPLAY 6:BGMW=TRUE
- X=11:Y=11
- LOCATE X,Y:PRINT”GAME OVER”
- RETURN
- ’───────────────────────────
- @GAME
- ’───────────────────────────
- GOSUB @MYCAR
- GOSUB @ENEMY
- GOSUB @PUTSCO
- IF DOT==0 GOTO @MYCLR
- RETURN
- ’---
- @MYCAR
- MW=MW+1
- IF MW<WMAX THEN RETURN
- MW=0
- LOCATE MX,MY:PRINT” ”
- @_MYRETRY
- X=MX+VX(MD):Y=MY+VY(MD):D=MD
- IF MS THEN MS=FALSE:GOTO @_MYSVEC
- ’--- ニュウリョクカクニン
- GOSUB @GETVEC
- ’---
- @_MYSVEC
- X=X+KX:Y=Y+KY
- GOSUB @CHKDOT
- IF C==ASC(”Е”) GOTO @DEAD
- IF R GOTO @_MYMOVE
- ’--- ホウコウチョウセイ
- MD=D
- GOTO @_MYRETRY
- ’--- イト゛ウ
- @_MYMOVE
- IF C!=ASC(”・”) GOTO @_MYMOV2
- ’--- ト゛ットケ゛ット
- B=62:F=-4000:GOSUB @SE
- DOT=DOT-1
- SCO=SCO+10
- GOSUB @SPDUP
- ’---
- @_MYMOV2
- MX=X:MY=Y
- GOSUB @PUTMCAR
- RETURN
- ’---
- @MYCLR
- BEEP 32
- STG=STG+1
- IF STG==4 THEN RQ=4:RETURN
- ’---
- BGMPLAY 4
- BGMW=TRUE
- RQ=1
- RETURN
- ’---
- @GETVEC
- KX=0:KY=0:
- IF B==1 THEN KY=-1:O=3
- IF B==2 THEN KY=1:O=1
- IF B==4 THEN KX=-1:O=2
- IF B==8 THEN KX=1:O=0
- ’---
- IF D==O GOTO @GVOFF
- O=O+2:O=O AND 3
- IF D==O GOTO @GVOFF
- ’---
- OX=X+KX:OY=Y+KY
- C=CHKCHR(OX,OY)
- MS=TRUE
- IF C==ASC(”・”) THEN RETURN
- IF C==ASC(” ”) THEN RETURN
- @GVOFF
- KX=0:KY=0:MS=FALSE
- RETURN
- ’---
- @SPDUP
- WMAX=WMAX-0.05
- IF WMAX<0.01 THEN WMAX=0.01
- RETURN
- ’---
- @DEAD
- BEEP 55,-2000
- RQ=3
- RETURN
- ’---
- @ENEMY
- IF ECNT==0 THEN RETURN
- FOR I=0 TO ECNT-1
- WM=E(I,_WM)
- W=E(I,_W):W=W+1
- IF W<WM GOTO @_ESKIP
- W=0
- @_ERETRY
- X=E(I,_X):Y=E(I,_Y):D=E(I,_D)
- LOCATE X,Y:PRINT CHR$(E(I,_C))
- X=X+VX(D):Y=Y+VY(D)
- GOSUB @CHKDOT
- IF R GOTO @_EMOVE
- E(I,_D)=D
- GOTO @_ERETRY
- @_EMOVE
- E(I,_X)=X:E(I,_Y)=Y
- E(I,_C)=CHKCHR(X,Y)
- GOSUB @PUTENE
- @_ESKIP
- E(I,_W)=W
- NEXT
- RETURN
- ’---
- @CHKDOT
- C=CHKCHR(X,Y):R=TRUE
- IF C==ASC(”・”) THEN RETURN
- IF C==ASC(” ”) THEN RETURN
- D=D-1:D=D AND 3
- R=FALSE
- RETURN
- ’---
- @PUTSCO
- X=25:Y=2
- LOCATE X,Y:PRINT” ”
- LOCATE X,Y:PRINT SCO
- Y=Y+3
- LOCATE X,Y:PRINT” ”
- LOCATE X,Y:PRINT WTOP-WMAX
- Y=Y+3
- LOCATE X,Y:PRINT” ”
- LOCATE X,Y:PRINT DOT
- RETURN
- ’---
- @GAMEINIT
- CLS
- BGMPLAY 13
- ’---
- COLOR 7
- X=24:Y=1
- LOCATE X,Y:PRINT”SCORE”;
- Y=Y+3
- LOCATE X,Y:PRINT”SPEED”;
- Y=Y+3
- LOCATE X,Y:PRINT”REST”;
- LOCATE 0,23:PRINT”STAGE:”;
- PRINT STG+1;
- COLOR 0
- ’---
- MW=0:WTOP=8:WMAX=WTOP
- MS=FALSE
- SCO=0
- ’---
- @STAGE1
- ’---
- DATA”┌─────────────────────┐”
- DATA”│・・・・・・・・・・・・・・・・・・・・・│”
- DATA”│・┌─────── ───────┐・│”
- DATA”│・│・・・・・・・・・・・・・・・・・│・│”
- DATA”│・│・┌───── ─────┐・│・│”
- DATA”│・│・│・・・・・・・・・・・・・│・│・│”
- DATA”│・│・│・┌─── ───┐・│・│・│”
- DATA”│・│・│・│・・・・・・・・・│・│・│・│”
- DATA”│・│・│・│・┌─ ─┐・│・│・│・│”
- DATA”│・│・│・│・│・・・・・│・│・│・│・│”
- DATA”│・ ・ ・ ・ ・┌─┐・ ・ ・ ・ ・│”
- DATA”│・ ・ ・ ・ ・│Ч│・ ・ ・ ・ ・│”
- DATA”│・ ・ ・ ・ ・└─┘・ ・ ・ ・ ・│”
- DATA”│・│・│・│・│・・・・・│・│・│・│・│”
- DATA”│・│・│・│・└─ ─┘・│・│・│・│”
- DATA”│・│・│・│・・・・・・・・・│・│・│・│”
- DATA”│・│・│・└─── ───┘・│・│・│”
- DATA”│・│・│・・・・・・・・・・・・・│・│・│”
- DATA”│・│・└───── ─────┘・│・│”
- DATA”│・│・・・・・・・・・・・・・・・・・│・│”
- DATA”│・└─────── ───────┘・│”
- DATA”│・・・・・・・・・・ ・・・・・・・・・・│”
- DATA”└─────────────────────┘”
- DATA 11,21,0
- DATA 3
- DATA 11,1,2
- DATA 11,5,2
- DATA 11,7,2
- ’---
- RESTORE @STAGE1
- FOR I=0 TO 22
- READ C$
- LOCATE 0,I
- PRINT C$
- NEXT
- ’--- ト゛ットヲカソ゛エル
- DOT=0
- FOR Y=0 TO 22
- FOR X=0 TO 22
- IF CHKCHR(X,Y)==ASC(”・”) THEN DOT=DOT+1
- NEXT
- NEXT
- ’--- シ゛フ゛ン
- READ MX,MY,MD
- GOSUB @PUTMCAR
- ’--- テキノハッセイ
- READ ECNT
- ECNT=STG
- IF STG==0 THEN RETURN
- FOR I=0 TO ECNT-1
- READ X,Y,D
- E(I,_X)=X:E(I,_Y)=Y:E(I,_D)=D
- E(I,_C)=CHKCHR(X,Y)
- E(I,_WM)=4+RND(60)
- GOSUB @PUTENE
- NEXT
- ’---
- RETURN
- ’---
- @PUTMCAR
- LOCATE MX,MY
- PRINT MYCHR$(MD)
- RETURN
- ’---
- @PUTENE
- LOCATE E(I,_X),E(I,_Y)
- PRINT ”Е”
- RETURN