SmileBASIC

プログラムリスト

SYS/EX7ALIEN

スクリーンショット

トップメニュー「SmileBASICでプログラムを作る」から、LOAD"SYS/EX7ALIEN"でプログラムが読み込まれます。キーボードの「EDIT」キーを押すと、このプログラムが自由に編集できます。


'
' EXAMPLE7   
' しんりやくしゃもどき 
'
XSCREEN 0
VISIBLE 1,1,1,1
CLS
COLOR 15

DIM EX[20],EY[20],ED[20]

'---
EMAX=20
FOR I=0 TO EMAX-1
 EX[I]=FLOOR(I MOD 10)*2+10
 EY[I]=FLOOR(I/10)*2+3
 ED[I]=0
 LOCATE EX[I],EY[I]
 PRINT ""
NEXT
EDW=FALSE

'---
PX=25:PY=21
LOCATE PX,PY:PRINT "";
LIFE=3
SC=0
MX=PX:MY=PY:MST=FALSE
LOCATE 0,22
PRINT ""*50;
LOCATE 0,23
PRINT ""*LIFE;
LOCATE 0,25
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,25:PRINT SC
RETURN

'---
@MYSHIP
BT=BUTTON()
VX=0
IF BT AND 4 THEN VX=-1
IF BT 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>49 THEN PX=49
LOCATE PX,PY:PRINT "";
'---
@NOTMOVE
RETURN

'--- 
@MYSHOT
IF MST==TRUE THEN @MSMOVE
IF (BT AND 16+32)==0 THEN @MSSKIP
MST=TRUE
MX=PX:MY=PY
GOTO @MSMOVE2
'---
@MSMOVE
LOCATE MX,MY:PRINT " "
'---
@MSMOVE2
MY=MY-1
IF MY<0 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!=FLOOR(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]+0.2
IF EX[I]>40 THEN EDW=TRUE
GOTO @EPUT

@LF
EX[I]=EX[I]-0.2
IF EX[I]<10 THEN EDW=TRUE

@EPUT
LOCATE EX[I],EY[I]
PRINT ""
RETURN

ページトップへ