- ’┌──────────┐
- ’│SAMPLE7 │
- ’│ シンリャクミスイ │
- ’└──────────┘
- VISIBLE 1,1,0,0,0,0
- CLS:COLOR 0
- CLEAR
- DIM EX(20),EY(20),ED(20)
- ’---
- EMAX=20
- FOR I=0 TO EMAX-1
- EX(I)=FLOOR(I%10)*2
- EY(I)=FLOOR(I/10)*2+3
- ED(I)=0
- LOCATE EX(I),EY(I)
- PRINT ”Е”
- NEXT
- EW=100:EC=0:EDW=FALSE
- ’---
- PX=10:PY=21
- LOCATE PX,PY:PRINT”Г”;
- LIFE=3:SC=0
- MX=PX:MY=PY:MST=FALSE
- LOCATE 0,22
- PRINT”────────────────────────────────”;
- LOCATE 0,23
- PRINT”Г:”;LEFT;
- LOCATE 0,0
- PRINT”SCORE: ”;SC
- SV=0
- ’---
- @LOOP
- GOSUB @MYSHIP
- GOSUB @MYSHOT
- GOSUB @ALIEN
- GOSUB @SCORE
- VSYNC(1)
- GOTO @LOOP
- ’--- スコア
- @SCORE
- IF SV==0 THEN RETURN
- SC=SC+10
- SV=SV-10
- LOCATE 7,0:PRINT SC
- RETURN
- ’--- シ゛フ゛ン
- @MYSHIP
- B=BUTTON():VX=0
- IF B AND 4 THEN VX=-1
- IF B AND 8 THEN VX=1
- IF VX==0 THEN @NOTMOVE
- LOCATE PX,PY:PRINT” ”
- PX=PX+VX
- IF PX<0 THEN PX=0
- IF PX>31 THEN PX=31
- LOCATE PX,PY:PRINT”Г”;
- ’---
- @NOTMOVE
- RETURN
- ’--- タマ
- @MYSHOT
- IF MST==TRUE THEN @MSMOVE
- IF TCHST==FALSE THEN @MSSKIP
- MST=TRUE
- MX=PX:MY=PY
- GOTO @MSMOVE2
- ’---
- @MSMOVE
- LOCATE MX,MY:PRINT” ”
- ’---
- @MSMOVE2
- MY=MY-1
- IF MY<3 THEN MST=FALSE:GOTO @MSSKIP
- LOCATE MX,MY:PRINT”・”
- ’---
- @MSSKIP
- RETURN
- ’--- シンリャクシャ
- @ALIEN
- MD=FALSE
- IF EDW THEN MD=EDW:EDW=FALSE
- ’---
- FOR I=0 TO EMAX-1
- IF ED(I)==-1 THEN @PASS
- ’---
- LOCATE EX(I),EY(I):PRINT” ”
- IF MD==FALSE THEN @EMV
- ’---
- ED(I)=(ED(I)+1) AND 3
- ’---
- @EMV
- GOSUB @EMOVE
- ’---
- @SKIP
- IF MST==FALSE THEN @PASS
- IF MX!=EX(I) THEN @PASS
- IF MY!=EY(I) THEN @PASS
- ’--- シホンウ
- LOCATE EX(I),EY(I):PRINT” ”
- ED(I)=-1
- MST=FALSE
- SV=SV+10
- ’---
- @PASS
- ’---
- NEXT
- RETURN
- ’---
- @EMOVE
- ON ED(I) GOTO @RI,@DW,@LF,@DW
- @DW
- EY(I)=EY(I)+1
- IF EY(I)>20 THEN EY(I)=3
- ED(I)=(ED(I)+1) AND 3
- GOTO @EPUT
- @RI
- EX(I)=EX(I)+1
- IF EX(I)<31 THEN @EPUT
- EDW=TRUE
- GOTO @EPUT
- @LF
- EX(I)=EX(I)-1
- IF EX(I)>0 THEN @EPUT
- EDW=TRUE
- @EPUT
- LOCATE EX(I),EY(I)
- PRINT ”Е”
- RETURN