SmileBASIC

プログラムリスト

SYS/GAME4SHOOTER

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


'
' GAME4SHOOTER    
' ダンマクシュ-ティングゲ-ム2 
'

GOSUB @INIT

'
LOGOSP=511:SPSET LOGOSP,4095:SPHIDE LOGOSP
EFCSET 1:EFCON

'---
WHILE 1
 
 GOSUB @INIT2
 GOSUB @TITLE
 
 '--- MAIN LOOP
 WHILE 1
  
  VSYNC 1
  
  GOSUB @MYMOVE
  GOSUB @MYSHOT
  GOSUB @TKMOVE
  GOSUB @MAPCTR
  GOSUB @MSGCTR
  
  IF OVR>300 THEN BREAK
  
 WEND
 
WEND

'--- しょきか
@INIT
XSCREEN 4
VISIBLE 1,1,1,1
BGCLR 0 'BG0
BGCLR 1 'BG1

BMAX=16   'じき たま しゅつげんすう
TBMAX=64  'てき たま しゅつげんすう
FMAX=32   'てき しゅつげんすう
TMAX=41   'てき しゅるい
STARMAX=32 'ほしのかず
BGTBMAX=10 'BGテーブル
LVLLOOP=7  'ステージのループ

MAPLEN=30  'マップのながさ
DIM MAP$[MAPLEN]  'マップデータ
DIM FR[FMAX]    'かくど
DIM TKC[TMAX]   'キャラクタ
DIM TKAN[TMAX]  'アニメ
DIM TKSC[TMAX]  'スケ-ル
DIM TKHP[TMAX]  'たいりょく
DIM TKOF[TMAX]  'カイテン オフセット
DIM MSK[TMAX]   '
DIM JMPTBL$[TMAX]
DIM STARX[STARMAX],STARY[STARMAX]
DIM STARCOL[STARMAX]
DIM BGTBL[BGTBMAX]   'BGテーブル

GRW=320
GRH=480

FN=0        'てき スプライトNO.
AN=FN+FMAX  'じき スプライトNO.
BN=AN+2     'じきたま スプライトNO.
TBN=BN+BMAX 'てきたま スプライトNO.

TKZ=16
TBZ=64
NONE=999

FOR I=0 TO TMAX-1
 JMPTBL$[I]="@TK"+STR$(I)
NEXT

HSC=100   'HISCORE
SLV=0.2   'THRESHOLD OF STICK
RETURN

'----スコア
@PUTSCORE
IF HSC<SC THEN HSC=SC
COLOR 15
LOCATE 0,1
PRINT "  HISCORE ";HSC
PRINT "  SCORE   ";SC
RETURN

'----メッセージ
@MSGCTR
FPS=FPS+1
NOW=MAINCNT

IF NOW<OLD THEN OLD=NOW 'カウンタまきもどり
IF (NOW-OLD)<60 THEN RETURN
OLD=NOW

GOSUB @PUTSCORE

COLOR 15
LOCATE 0,56
PRINT "  SHIP ";SHIP;" "
IF BOMB==0 THEN COLOR 3
PRINT "  BOMB ";BOMB;" "

IF DEBUG THEN PRINT "  FPS ";FPS
FPS=0

IF MSG$!="" THEN
 BEEP 15,-1000
 COLOR 7
 PRNSUB -1,-1,MSG$
 MSG$=""
 MSGCNT=4
ENDIF

IF MSGCNT THEN
 MSGCNT=MSGCNT-1
 IF MSGCNT<=0 THEN
  PRNSUB -1,-1," "*40
 ENDIF
ENDIF
RETURN

'--- じき いどう
@MYMOVE
IF OVR THEN @MYDEAD

C=1251
BT=BUTTON()
STICK OUT SX,SY

IF (SY>SLV)  OR (BT AND 1) THEN AY=AY-AD
IF (SY<-SLV) OR (BT AND 2) THEN AY=AY+AD
IF (SX<-SLV) OR (BT AND 4) THEN AX=AX-AD:C=1261
IF (SX>SLV)  OR (BT AND 8) THEN AX=AX+AD:C=1253
IF AX<16  THEN AX=16
IF AX>304 THEN AX=304
IF AY<16  THEN AY=16
IF AY>464 THEN AY=464

SPCHR AN,C
SPOFS AN,AX,AY,AZ
'PRINT "X=";AX;",Y=";AY
SPOFS AN+1,AX,AY+16,AZ+1

GOSUB @MYSTART 

'--- じき あたりはんてい
SPN=SPHITSP(AN)
IF SPN==-1 THEN RETURN
''PRINT "SPN=";SPN
IF (SPN>=TBN) AND (SPN<TBN+TBMAX) THEN
 IF SPVAR(SPN,0)==0 THEN
  IF (DEBUG==0) AND (STA==0) THEN
   OVR=1
  ENDIF
 ENDIF

 RETURN
ENDIF

IF (SPN<FN) OR (SPN>=FN+FMAX) THEN RETURN
C=SPVAR(SPN,0) 'TYPE
IF C==0 THEN RETURN   'SMOKE
IF C==4 THEN
 'GET 1UP ITEM
 BEEP 7
 SHIP=SHIP+1
 SPOFS SPN,NONE,NONE
 RETURN
ENDIF

IF C==5 THEN
 'GET BOMB ITEM
 BEEP 12
 BOMB=BOMB+1
 SPOFS SPN,NONE,NONE
 RETURN
ENDIF

IF (DEBUG==0) AND (STA==0) THEN
 OVR=1
ENDIF

RETURN

'--- PAUSE
@PAUSE
COLOR 13
BGMSTOP
I=0

WHILE 1
 IF I==0 THEN A$="CONTINUE  EXIT"
 IF I==1 THEN A$=" CONTINUE EXIT"
 COLOR 15
 PRNSUB -1,-1,A$
 BT=BTWAIT()
 IF (BT AND &HF) THEN I=I XOR 1
 IF (BT AND &H4F0) THEN BREAK
WEND

CLS
BTOFWAIT
IF I==0 THEN
 BGMPLAY BGMN
ELSE
 SHIP=0
 OVR=1
ENDIF
RETURN

'---USE BOMB
@BOMB
IF BUSY THEN RETURN
IF BOMB==0 THEN RETURN

DEC BOMB

FOR SPN=FN TO FN+FMAX-1
 C=SPVAR(SPN,0) 'TYPE
 IF TKHP[C]<=99 THEN SPVAR SPN,3,1    '
NEXT
'--- EFFECT
FOR I=0 TO BMAX-1
 SPN=BN+I
 SPVAR SPN,0,1  'DISABLE
 R=RAD(I*360/BMAX)
 X=AX+COS(R)*600
 Y=AY+SIN(R)*600
 SPANIM SPN,"XY",1,AX,AY,-120,X,Y
 SPANIM SPN,"I","@BOMBANIM",(120/(6*3))
NEXT

FOR SPN=TBN TO TBN+TBMAX-1
 IF SPCHK(SPN) THEN
  SPOFS SPN OUT X,Y
  SPANIM SPN,"I","@SMOKEANIM"
  SPANIM SPN,"XY",32,X,Y,1,NONE,NONE
  SPVAR SPN,0,1  'DISABLE
 ENDIF
NEXT

BUSY=30    'れんぞく しょう させない
RETURN


'--- じき スタ-ト
@MYSTART
IF STA==0 THEN RETURN

IF STA==1 THEN
 SPSCALE AN  ,1,1
 SPSCALE AN+1,1,1
 SPCOLOR AN  ,RGB(255,255,255,255)
 SPCOLOR AN+1,RGB(255,255,255,255)

 BEEP 6
 AX=160
 AY=470
 BOMB=3
 BUSY=30
ENDIF

AY=AY-STA*2
STA=STA-0.01
IF STA<=0 THEN STA=0
RETURN

'--- じき ばくはつ
@MYDEAD
IF OVR==1 THEN
 SPOFS AN  ,NONE,NONE
 SPOFS AN+1,NONE,NONE
 SHIP=SHIP-1
 IF SHIP<=0 THEN
  BGMN=6
  BGMPLAY BGMN
  MSG$="G A M E  O V E R"
 ENDIF
ENDIF

BT=0
'PRINT "OVR";OVR
IF RND(5)==0 THEN
 BEEP 13,1000
 NEWR=RAD(RND(360))
 RET = TKBORN(AX,AY,0,NEWR) 'SMOKE
ENDIF

OVR=OVR+1
IF OVR>100 THEN
 IF SHIP>0 THEN
  OVR=0
  STA=1   'RETRY
 ENDIF
ENDIF

RETURN

'--- たま しょり
@MYSHOT
GOSUB @HITCHK

IF BUSY THEN BUSY=BUSY-1

'---[B]BUTTON=ボム
IF (BT AND 32) THEN GOSUB @BOMB:RETURN

IF (MAINCNT MOD 8) THEN RETURN

'---[A]BUTTON=SHOT1
IF (BT AND 16) THEN GOSUB @MYFIRE1:RETURN

'---[Y]BUTTON=SHOT2
IF (BT AND 128) THEN GOSUB @MYFIRE2:RETURN

'---R BUTTON
IF (BT AND 512) THEN GOSUB @PAUSE

RETURN


'--- たま はっしゃ パタ-ン1
@MYFIRE1
X=AX:Y=AY
X1=0
IF (FPS MOD 16)<8 THEN X=X-8 ELSE X=X+8
GOSUB @MYFIRE
RETURN

'--- たま はっしゃ パタ-ン2
@MYFIRE2
X=AX:Y=AY
IF (FPS MOD 16)<8 THEN X1=-90 ELSE X1=90
GOSUB @MYFIRE
RETURN


@MYFIRE
'--- スプライトの あき さがす
FOR I=BN TO BN+BMAX-1
 IF SPCHK(I)==0 THEN
  'アキ ケンシュツ
  C=1342
  SPCHR I,C
  SPANIM I,"XY",1,X,Y,-40,X+X1,Y-480
  SPVAR I,0,0
  BREAK
 ENDIF
NEXT
RETURN


'--- てき/アイテム いどう
@TKMOVE
FOR I=0 TO FMAX-1
 SPN=FN+I

 SPOFS SPN OUT X,Y  'ざひょう
 IF Y==NONE THEN CONTINUE

 C=SPVAR(SPN,0)   'しゅるい
 T=SPVAR(SPN,2)   'じかん
 SPVAR SPN,2,T+1  'じかん+1
 GOSUB @TKDAMAGE

 R=FR[I]          'かくど

 GOSUB JMPTBL$[C]

 X=X+COS(R)*FD
 Y=Y+SIN(R)*FD
 IF X<-16 OR X>GRW+16 THEN Y=NONE
 IF Y<-32 OR Y>GRH+16 THEN Y=NONE
 SPOFS SPN,X,Y

 IF (T AND 15)==0 THEN SPCOLOR SPN,RGB(255,255,255)

 IF FR[I]!=R THEN FR[I]=R:SPROT SPN,FLOOR(DEG(R-TKOF[C]))

 IF (T AND 7)==7 THEN
  A=SPVAR(SPN,4)
  A=A+1
  IF A>=TKAN[C] THEN A=0
  SPVAR SPN,4,A
  SPCHR SPN,TKC[C]+A
 ENDIF
NEXT
RETURN


'--- 0:SMOKE
@TK0
FD=T/15
X=X+RND(5)-2
Y=Y+RND(5)-2
IF T>40 THEN Y=NONE
RETURN

'--- 1:FAT BEAM
@TK1
FD=FLOOR(T*T/200)
IF FD>6 THEN FD=6
RETURN

'--- 2:HOMING MISSILE
@TK2
FD=T/17
IF RND(3) THEN RETURN
R1=TRACKING(AX-X,AY-Y,R)

R=R+(SGN(R1)*0.04)
RETURN

'--- 3:BEAM
@TK3
FD=FLOOR(T*T/200)
IF FD>6 THEN FD=6
RETURN

'--- 4:1UP
@TK4
FD=0
Y=Y+((T-35)/30)
RETURN

'--- 5:BOMB
@TK5
FD=0.5
X=X+COS(RAD((T*2) MOD 360))*2
RETURN
'--- 6:
@TK6
RETURN
'--- 7:
@TK7
RETURN

'--- 8:S CURVE(TYPE A)
@TK8
FD=2
R1=RAD(180/50)
IF ABS(50-(T MOD 100))<26 THEN R1=-R1
R=R+R1
IF (T MOD 40)==0 THEN
 RET= TKFIRE(X,Y,R,2)
ENDIF
RETURN

'--- 9:SW BACK(TYPE B)
@TK9
R=SGN(140-T)*1.57
FD=FLOOR(ABS(120-T)/20)
IF FD>0 THEN RETURN
IF (T MOD 24) THEN RETURN
IF RND(10)>LVL THEN RETURN
BEEP 38
RET = TKBORN(X,Y,2,RAD(90)) 'HOMING
RETURN

'--- 10:V SHOT(TYPE C)
@TK10
FD=FLOOR(ABS(60-T)/18)
IF T>180 THEN RETURN
IF FD>0 THEN RETURN

R1=TRACKING(AX-X,AY-Y,R)

R=R+(SGN(R1)*0.05)
IF (T MOD 14) THEN RETURN
 RET= TKFIRE(X,Y,R-0.3,2)
 RET= TKFIRE(X,Y,R+0.3,2)
BEEP 4
RETURN

'--- 11:U TURN(TYPE D)
@TK11

FD=ABS(120-T)/20
IF T>120 THEN
 R1=TRACKING(200-X,0-Y,R)
 R=R+(SGN(R1)*0.03)
ENDIF
IF FD>1 OR (T MOD 15) THEN RETURN
NEWR=ATAN(AY-Y,AX-X)
RET= TKFIRE(X,Y,NEWR,2)
BEEP 4
RETURN

'--- 12:FORTRESS(TYPE E)
@TK12
CYCLE=T MOD 60
FD=0
Y=Y+1
IF CYCLE<30 THEN
 R1=TRACKING(AX-X,AY-Y,R)
 R=R+(SGN(R1)*0.03)
 RETURN
ENDIF
IF CYCLE==59 THEN
 RET= TKFIRE(X,Y,R,2)
ENDIF
RETURN

'--- 13:UFO(TYPE F)
@TK13
FD=1+(T/180)
IF RND(4)==0 THEN R=R-RAD(8)
IF RND(4)==0 THEN R=R+RAD(8)
IF (T MOD 60)==0 THEN
 NEWR=ATAN(AY-Y,AX-X)
 RET= TKFIRE(X,Y,NEWR,2)
ENDIF
RETURN

'--- 14:HOMING MISSILE(TYPE G)
@TK14
IF T>300 THEN
 SPVAR I,3,999
 RETURN
ENDIF

FD=4-(T/40)
IF FD<1.9 THEN FD=1.9

R1=TRACKING(AX-X,AY-Y,R)
R=R+(SGN(R1)*0.05)

RETURN

'--- 15:SIDE SHOT(TYPE H)
@TK15
FD=FLOOR((T MOD 90)/30)
IF ABS(AY-Y)>20 THEN RETURN
IF (T MOD 20) THEN RETURN
RET= TKFIRE(X,Y,RAD(0),2)
RET= TKFIRE(X,Y,RAD(180),2)
RETURN

'--- 16:NEAR MISS(TYPE I)
@TK16
FD=2
CYCLE=T MOD 128
IF CYCLE==0  THEN R=RAD(RND(2)*180)
IF CYCLE==16 THEN R=RAD(90)
IF CYCLE==64 THEN R=RAD(RND(2)*180)
IF CYCLE==80 THEN R=RAD(90)
IF (T MOD 48)==0 THEN
 RET= TKFIRE(X,Y,R,3)
ENDIF
RETURN

'--- 17:SPIN(TYPE J)
@TK17
FD=0
Y=Y+1
IF T<60 THEN Y=Y+1.8:RETURN
IF T>200 THEN Y=Y+1.8:RETURN

R1=TRACKING(AX-X,AY-Y,R)
R=R+(SGN(R1)*0.01)

IF (T MOD 70)==0 THEN
 RET = TKBORN(X,Y,3,R) 'BEAM
ENDIF
RETURN

'--- 18:HANABI(TYPE K)
@TK18
FD=1.3
IF T<2*60 THEN RETURN

SPVAR I,3,999

FOR NEWR=0 TO 6.28 STEP 0.5
 RET= TKFIRE(X,Y,NEWR,2.5)
NEXT
RETURN

'--- 19:WALL(TYPE J)
@TK19
FD=0
R=R+RAD(1)
Y=Y+1
RETURN

'--- BOSS1
@TK34
FD=0.5
IF T<90*4 THEN RETURN
FD=0
X=X+COS(RAD((T MOD 90)*4))*3
Y=Y+SIN(RAD((T MOD 40)*9))*3

CYCLE=T MOD 200
IF (CYCLE MOD 40) THEN RETURN
IF CYCLE<20*LVL THEN
 NEWR=RAD(90)
 RET = TKBORN(X+24,Y,3,NEWR) 'BEAM
 RET = TKBORN(X-24,Y,3,NEWR) 'BEAM
 BEEP 5
 RETURN
ENDIF

FOR NEWR=0 TO 3.14 STEP 0.4
 RET= TKFIRE(X,Y,NEWR    ,1.5)
 RET= TKFIRE(X,Y,NEWR+0.2,2)
NEXT
BEEP 11
RETURN

'--- BOSS2
@TK35
FD=0.5
IF T<90*4 THEN RETURN

FD=0
J=130-(LVL*4)
IF J<100 THEN J=100

CYCLE=T MOD J
IF CYCLE>=90 THEN
 IF (T MOD 5) THEN RETURN
 IF RND(14) THEN BEEP 6
 TX=X+COS(R)*30
 TY=Y+SIN(R)*30
 RET = TKBORN(TX,TY,1,R) 'FAT BEAM
 RETURN
ENDIF

X=X+COS(RAD(CYCLE*4))*1.5

IF CYCLE<80 THEN
 R1=TRACKING(AX-X,AY-Y,R)
 R=R+(SGN(R1)*0.01)
ENDIF

IF (T MOD 50)==0 THEN
 FOR NEWR=0 TO 3.14 STEP 0.6
  RET= TKFIRE(X,Y,NEWR,2.5)
 NEXT
ENDIF
RETURN

'--- BOSS3
@TK36
FD=((90*2)-T)/220
IF T<90*2 THEN RETURN
FD=0

CYCLE=T MOD 360
IF CYCLE<180 THEN
 Y=Y+(90-CYCLE)/20
 IF (T MOD 30) THEN RETURN
 BEEP 9
 FOR NEWR=0 TO 6.28 STEP 0.7
  RET= TKFIRE(X,Y,NEWR,1.5)
 NEXT
 RETURN
ENDIF

X=X+COS(RAD((CYCLE*2) MOD 360))
IF (T MOD 90)==0 THEN
 'ミサイル
 BEEP 11
 RET=TKBORN(X,Y,14,RAD(180)*RND(2))
 RETURN
ENDIF

IF (T MOD 30)==0 THEN
 IF LVL<RND(20) THEN RETURN
 BEEP 38
 TX=X+RND(2)*80-40
 RET = TKBORN(TX,Y,2,RAD(90)) 'HOMING
 RETURN
ENDIF
RETURN

'--- BOSS4
@TK37
FD=0.5
IF T<190 THEN RETURN
FD=0

CYCLE=T MOD 360
IF CYCLE<180 THEN
 IF CYCLE<90 THEN Y=Y+1 ELSE Y=Y-1
ENDIF

IF (T MOD 8)==0 THEN
 NEWR=RAD(T MOD 180)
 RET= TKFIRE(X,Y,NEWR,1.5)

 NEWR=RAD(180-(T MOD 180))
 RET= TKFIRE(X,Y,NEWR,1.5)
 RETURN
ENDIF

IF (T MOD 190)==0 THEN
 RET = TKBORN(X,Y,2,R) 'HOMING
ENDIF

RETURN

'-----BOSS5
@TK38
FD=0.5
IF T<90*4 THEN RETURN
FD=2.5

CYCLE=FLOOR((T MOD (6*90))/90)
IF CYCLE==0 THEN R1=TRACKING( 40-X,120-Y,R)
IF CYCLE==2 THEN R1=TRACKING(160-X,320-Y,R)
IF CYCLE==4 THEN R1=TRACKING(280-X,120-Y,R)
IF CYCLE AND 1 THEN R1=TRACKING(AX-X,AY-Y,R)
R=R+(SGN(R1)*0.10)

IF (T MOD 90)==0 THEN
 FOR NEWR=0 TO 6.28 STEP 0.5
  RET= TKFIRE(X,Y,NEWR,1.5)
 NEXT
ENDIF

IF CYCLE AND 1 THEN
 FD=0
 IF (T MOD 15)==0 THEN
  RET = TKBORN(X,Y,3,R) 'BEAM
 ENDIF
ENDIF
RETURN
'-----BOSS6
@TK39
FD=0.5
IF T<90*3 THEN RETURN
FD=0

CYCLE=T MOD 180
IF CYCLE<90 THEN R1=RAD(4) ELSE R1=RAD(-4)
R=R+R1

IF ((T MOD 12)==0) AND (RND(3)!=0) THEN
 IF LVL<RND(20) THEN RETURN
 BEEP 38
 NEWR=RAD(180*RND(2)-90)+R
 RET = TKBORN(X,Y,2,NEWR) 'HOMING
 RETURN
ENDIF

IF ((T MOD 25)==0) AND (RND(3)!=0) THEN
 BEEP 11
 RET=TKBORN(X,Y,18,R) 'HANABI
 RETURN
ENDIF

RETURN
'-----BOSS7
@TK40
FD=0.5
IF T<90*3 THEN RETURN
FD=0

CYCLE=T MOD 300

IF CYCLE<90 THEN

 IF (CYCLE MOD 5)==0 THEN
  NEWR=RAD(CYCLE*2)
  RET= TKFIRE(X,Y,NEWR,2)
  RET= TKFIRE(X,Y,NEWR,1.5)
 ENDIF
 RETURN
ENDIF

IF CYCLE==90 THEN
 'ミサイル
 BEEP 11
 RET=TKBORN(X,Y,14,RAD(90))
ENDIF

IF CYCLE<180 THEN
 X=X+SGN(AX-X)
 RETURN
ENDIF

IF (T MOD 15)==0 THEN
 TX=X+(T MOD (15*4))+20
 RET = TKBORN(TX,Y,3,R) 'BEAM

 TX=X-(T MOD (15*4))-20
 RET = TKBORN(TX,Y,3,R) 'BEAM
ENDIF

RETURN

'---FIRE
DEF TKFIRE(X1,Y1,RD,SPD)
 IF RND(9)>LVL THEN RETURN 0

 FOR NN=TBN TO TBN+TBMAX-1
  IF SPCHK(NN)==0 THEN
   TIM=580/SPD
   SPCHR NN,1310
   SPROT NN,DEG(RD)+90
   SPVAR NN,0,0 'ENABLE
   X2=COS(RD)*580+X1
   Y2=SIN(RD)*580+Y1
   SPANIM NN,"XY",1,X1,Y1,-TIM,X2,Y2
   BREAK
  ENDIF
 NEXT
 RETURN 0
END

'--- ツイセキ
DEF TRACKING(DX,DY,R)
 R1=ATAN(DY,DX)-R
 IF R1> 3.14 THEN R1=R1-6.28
 IF R1<-3.14 THEN R1=R1+6.28
 RETURN R1
END

'--- アタリ ハンテイ
@HITCHK
FOR SPN=BN TO BN+BMAX-1
 IF SPVAR(SPN,0) THEN CONTINUE
 IF SPCHK(SPN)==0 THEN CONTINUE 'NOT WORKING
 TGT=SPHITSP(SPN)
 IF TGT==-1 THEN CONTINUE
 '---HIT
''PRINT "HIT SPN=";SPN
 IF (TGT<FN) OR (TGT>=FN+FMAX) THEN CONTINUE
 C=SPVAR(TGT,0) 'TYPE
 IF C<8 THEN CONTINUE 'はかいふのう

 SPVAR TGT,3,1   'DAMAGE=1
 SPVAR SPN,0,1   'DISABLE
 C=1364
 SPANIM SPN,"I",4,C,4,C+1,4,C+2,4,C+3
 SPOFS SPN OUT X,Y
 SPANIM SPN,"XY",16,X,Y,1,NONE,NONE
NEXT
RETURN

'----てきダメージ
@TKDAMAGE
DMG=SPVAR(SPN,3)
IF DMG==0 THEN RETURN 'NO DAMAGE

SPVAR SPN,3,0    'ダメージ クリア
C=SPVAR(SPN,0)
HP=SPVAR(SPN,1)
HP=HP-DMG  'てき たいりょく-
IF HP<0 THEN HP=0
SPVAR SPN,1,HP
SPCOLOR SPN,RGB(255,128,128)

IF HP>0 THEN
 BEEP 0,2048
 RETURN
ENDIF

BEEP 13,2096
RET = TKSET(SPN,X,Y,0,RAD(RND(360))) 'SMOKE
SC=SC+1

IF TKHP[C]>=99 THEN RETURN  'アイテムださない

IF C>=34 THEN
 '--- ボス
 BGMN=30
 BGMPLAY BGMN
 BOSS=BOSPOS+10000
 RETURN
ENDIF

'--- ざこてき
IF RND(80)==0 THEN
 '1UP
 RET = TKBORN(X,Y,4,RAD(90))
 RETURN
ENDIF

IF RND(80)==0 THEN
 'BOMB
 RET = TKBORN(X,Y,5,RAD(90))
 RETURN
ENDIF

RETURN

'--- スクロール/てきしゅつげん
@MAPCTR
'---ほし うごかす
IF MAINCNT AND 1 THEN
 FOR I=0 TO STARMAX-1
  X=STARX[I]:Y=STARY[I]
  W=(I*3/STARMAX)
  GFILL X,Y,X+W,Y+W,0
  Y=Y+1.5*(I/STARMAX)+0.1
  GFILL X,Y,X+W,Y+W,STARCOL[I]
  STARY[I]=Y

  IF STARY[I]>GRH THEN
   STARX[I] = RND(GRW-32)+16
   STARY[I] = -1
   STARCOL[I] = RGB(RND(256),RND(256),RND(256))
  ENDIF
 NEXT
ENDIF

'--- BG0 スクロ-ル
LAY=0
BG0Y=BG0Y-2

IF (BG0Y<=0) AND (BOSS>BOSPOS) THEN
 BG0Y=BG0Y+32
ENDIF
BGOFS LAY,0,BG0Y,100

'--- BG1 スクロ-ル
LAY=1
BG1Y=BG1Y-1
BGOFS LAY,0,BG1Y,350

IF BOSS==0 THEN
 MSG$="S T A G E  "+STR$(LVL)
 BGMN=40
 BGMPLAY BGMN
 GOSUB @READMAP
ENDIF

BOSS=BOSS+1
IF BOSS<BOSPOS THEN
 IF MAPY<0 THEN RETURN
 IF BOSS AND 15 THEN RETURN

 '--- ざこてき しゅつげん
 FOR I=0 TO 19
  C = ASC(MID$(MAP$[MAPY],I,1))
  IF C>=ASC("A") THEN
   NEWC=C-(ASC("A")-8)
   X=I*16+8
   Y=-16+8
   RET = TKBORN(X,Y,NEWC,RAD(90))
  ELSE
   C=C-ASC("0")
   IF C<0 THEN C=0
   IF C>9 THEN C=9
   BGPUT LAY,I,MAPY,BGTBL[C]
  ENDIF
 NEXT
 MAPY=MAPY-1
 RETURN
ENDIF

'--- ボス しゅつげん
'PRINT "BOSS";BOSS
J=(BOSS-BOSPOS)
I=0 'WARNING
IF J>20    THEN I=1 'とうじょう
IF J>900   THEN I=2 'せんとうちゅう
IF J>3500  THEN I=3 'じばく
IF J>10000 THEN I=4 'たいじょう
IF J>10100 THEN I=5 'つぎの めんへ

ON I GOSUB @BSCTR0,@BSCTR1,@BSCTR2,@BSCTR3,@BSCTR4,@BSCTR5
RETURN

'--- ボス てまえ
@BSCTR0
BGMSTOP
IF OVR==0 THEN
 MSG$="W A R N I N G!!"
ENDIF
RETURN

'--- ボス とうじょう
@BSCTR1
BG0Y=480+16   'BG0 ざひょう

BGMN=30
BGMPLAY BGMN
X=160:Y=-31
NEWC=34+((LVL-1) MOD LVLLOOP)
RET = TKBORN(X,Y,NEWC,RAD(90))
IF RET>=0 THEN BOSS=BOSPOS+900
RETURN

'--- ボス せんとうちゅう
@BSCTR2
RETURN

'--- ボス じばく
@BSCTR3
BGMSTOP
FOR SPN=FN TO FN+FMAX-1
 SPOFS SPN OUT X,Y  'ざひょう
 IF Y!=NONE THEN SPVAR SPN,3,999
NEXT
BOSS=BOSPOS+10000
RETURN

'--- ボス たいじょう
@BSCTR4
IF RND(5) THEN RETURN

X=(160-80)+RND(160)
Y=(120-60)+RND(120)
Z=0
NEWR=RAD(RND(360))
BEEP 13
RET = TKBORN(X,Y,0,NEWR) 'SMOKE
RETURN

'--- つぎの めん
@BSCTR5
BOSS=0
LVL=LVL+1
RETURN


'--- てき/エフェクト しゅつげん
DEF TKBORN(XX,YY,CC,RR)
  'アキ サガス
 FOR J=FN TO FN+FMAX-1
  SPOFS J OUT VX,VY
  IF VY==NONE THEN BREAK
 NEXT
 IF J>=FN+FMAX THEN
 ' PRINT "TOO MANY"
  RETURN -1   'アキガ ナイ
 ELSE
  RET = TKSET(J,XX,YY,CC,RR)
  RETURN 0
 ENDIF
END

'----てき セット
DEF TKSET(NN,NX,NY,NC,NR)
 IF (NC<0) OR (NC>=TMAX) THEN RETURN 0
 IF MSK[NC]==&H00F THEN NZ=TBZ ELSE NZ=TKZ

 SPSET NN,TKC[NC]
 SPDEF TKC[NC] OUT U,V,W,H
 SPCOL NN,-W/2,-H/2,W,H,TRUE,MSK[NC]
 SPOFS NN,NX,NY,NZ
 SPSCALE NN,TKSC[NC],TKSC[NC]
 SPCOLOR NN,RGB(255,255,255)
 SPROT NN,FLOOR(DEG(NR-TKOF[NC]))
 FR[NN]=NR
 SPVAR NN,0,NC   'しゅるい
 SPVAR NN,1,TKHP[NC] 'たいりょく
 SPVAR NN,2,0    'じかん
 SPVAR NN,3,0    'ダメージ
 SPVAR NN,4,0    'アニメ
 RETURN 0
END

'--- しょきか2
@INIT2
AD=3  'じき いどうスピード
AZ=-64

RESTORE @SPTABLE
WHILE 1
 READ C
 IF C<0 THEN BREAK
 SPDEF C OUT U,V,W,H
 SPDEF C,U,V,W,H,W/2,H/2
WEND

'--- じき しょきか
C=1251
SPSET AN,C
SPDEF C OUT U,V,W,H
SPCOL AN,-W/4,-H/4,W/2,H/2,FALSE,&H0000F0FF
SPOFS AN,NONE,NONE,AZ

SPSET AN+1,11
SPOFS AN+1,NONE,NONE,AZ+1
SPANIM AN+1,"I","@BOOSTANIM",0

'--- じき たま しょきか
FOR SPN=BN TO BN+BMAX-1
 C=1
 SPSET SPN,C
 SPOFS SPN,NONE,NONE
 SPDEF C OUT U,V,W,H
 SPCOL SPN,-W/2,-H/2,W,H,FALSE,&H00000F00
NEXT

'--- てき しょきか
FOR SPN=FN TO FN+FMAX-1
 C=1
 SPSET SPN,C
 SPOFS SPN,NONE,NONE
 SPVAR SPN,1,0    'たいりょく
NEXT

'--- てき たま しょきか
FOR SPN=TBN TO TBN+TBMAX-1
 C=1
 SPSET SPN,C
 SPSCALE SPN,1.5,1.5
 SPDEF C OUT U,V,W,H
 SPCOL SPN,-W/2,-H/2,W,H,FALSE,&H0000000F
 SPOFS SPN,NONE,NONE,-190
NEXT

'--- てきデータよみこみ
RESTORE @TEKIDATA
FOR I=0 TO TMAX-1
 READ TKC[I] 'キャラ
 READ TKSC[I] 'SCALE
 READ TKHP[I] 'HP
 READ TKOF[I]
 READ MSK[I]
 READ TKAN[I] 'アニメ
 FOR J=0 TO TKAN[I]
  C=TKC[I]+J
  SPDEF C OUT U,V,W,H
  SPDEF C,U,V,W,H,W/2,H/2
 NEXT
NEXT

LVL=1   'STAGE
BOSPOS=(MAPLEN*16*2)-240  'ボスのタイミング

'ホシ
FOR I=0 TO STARMAX-1
 STARX[I] = RND(GRW)
 STARY[I] = RND(GRH)
 STARCOL[I] = RGB(RND(256),RND(256),RND(256))
NEXT

'---BG0
LAY=0
BGSCREEN LAY,GRW/16,GRH/16
FOR Y=0 TO GRH/16-1
 C=742
 BGPUT LAY,0       ,Y,C
 BGPUT LAY,GRW/16-1,Y,C
 IF Y AND 1 THEN
  BGPUT LAY,1       ,Y,C
  BGPUT LAY,GRW/16-2,Y,C
 ENDIF
NEXT
'---BG1
LAY=1
BGSCREEN LAY,GRW/16,GRH/16

RETURN

'--- TITLE
@TITLE
BGMSTOP
GCLS
CLS
FOR I=1 TO 240 STEP 3
 C=RGB(0,(I MOD 32)*4,0)
 GCIRCLE GRW/2,GRH/2,I,C
 GBOX 160-I,240-I,160+I,240+I,C
NEXT

COLOR 15
BEEP 55
BGOFS 0,0,-480
BGOFS 1,0,MAPLEN*16

SPSCALE AN,4,4
SPCOLOR AN,RGB(128,255,255,255)
X=GRW/2:Y=GRH*3/4:T=300
SPANIM AN,"XY",60,X,Y,-T,X,Y-240,-T,X,Y,0

Y=Y+64
SPSCALE AN+1,4,4
SPCOLOR AN+1,RGB(128,255,255,255)
SPANIM AN+1,"XY",60,X,Y,-T,X,Y-240,-T,X,Y,0

'
SPOFS LOGOSP,160,300,-32:SPSHOW LOGOSP
'

RESTORE @TITLEDATA

FOR Y=4 TO 59
 READ A$
 IF A$=="END" THEN BREAK
 PRNSUB -1,Y,A$
NEXT

GOSUB @PUTSCORE

WHILE 1
 BT=BTWAIT()
 IF (BT AND (16+32+64+128)) THEN BREAK

 '--- (カクシ キノウ)むてき
 IF BT AND 4+8 THEN DEBUG=DEBUG XOR 1

 '--- (カクシ キノウ)メン セレクト
 IF BT AND (1+2) THEN
  IF BT AND 1 THEN LVL=LVL+1
  IF BT AND 2 THEN LVL=LVL-1
  IF LVL<1  THEN LVL=1
  IF LVL>99 THEN LVL=99
  GOSUB @READMAP
  BGOFS LAY,0,0
 ENDIF

 A$="[]STAGE "+FORMAT$("%02D",LVL)
 Y=41
 PRNSUB -1,Y,A$

 A$="NORMAL MODE"
 IF DEBUG THEN A$="DEBUG  MODE"

 Y=43
 PRNSUB -1,Y,"[]"+A$

WEND

'
SPANIM LOGOSP,"XY",-30,264,460
'

'--- スタート
BTOFWAIT
CLS
GCLS
OVR=0  'GAMEOVER
SHIP=3 'ザンキ
SC=0   'SCORE
STA=1  'START FLAG
BOSS=0

NOW=MAINCNT
FPS=0
OLD=NOW
RETURN

@TITLEDATA
DATA ""
DATA "                         "
DATA "          "
DATA "      "
DATA "    "
DATA "                            "
DATA "   DANMAKU SHOOTING GAME 2  "
DATA ""
DATA ""
DATA ""
DATA "<< HOW TO PLAY >>"
DATA ""
DATA "[A]BUTTON:SHOT1"
DATA ""
DATA "[Y]BUTTON:SHOT2"
DATA ""
DATA "[B]BUTTON:BOMB "
DATA ""
DATA "[]BUTTON:MOVE "
DATA ""
DATA "[R]BUTTON:PAUSE"
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA ""
DATA "<<PUSH ANY BUTTON>>"
DATA ""
DATA ""
DATA ""
DATA "(C)2014 SMILEBOOM CO.LTD."
DATA ""
DATA "END"
'-------マップデータよみこみ
@READMAP

A$="@MAPDATA"+STR$((LVL-1) MOD LVLLOOP)
RESTORE A$

FOR I=0 TO BGTBMAX-1
 READ BGTBL[I]
NEXT

BGFILL 1,0,0,19,MAPLEN-1,0
FOR Y=0 TO 999
 READ A$
 IF A$=="" THEN BREAK
 IF Y>=MAPLEN THEN BREAK
 MAP$[Y]=A$
' FOR X=0 TO 19
'  C=VAL(MID$(A$,X,1))
'  BGPUT LAY,X,Y,BGTBL[C]
' NEXT
NEXT

BG0Y=0   'BG0 ざひょう
BG1Y=MAPLEN*16+16   'BG1 ざひょう
MAPY=MAPLEN-1

RETURN


'---PRINT
DEF PRNSUB X,Y,A$
 IF Y<0 THEN Y=28
 IF X<0 THEN X=20-(LEN(A$)/2)
 LOCATE X,Y,-100
 PRINT A$
END

'--- ボタン おす
DEF BTWAIT()
 BTOFWAIT

 WHILE 1
  VSYNC 1
  BT=STKANDBTN()
  IF BT THEN BREAK
 WEND
 BEEP 3
 RETURN BT
END

'--- ボタン はなす
DEF BTOFWAIT
 WHILE 1
  VSYNC 1
  IF STKANDBTN()==0 THEN BREAK
 WEND
END

'---
DEF STKANDBTN()
 BTN=BUTTON()
 STICK OUT SX,SY
 IF (SY>SLV)  THEN BTN=BTN OR 1
 IF (SY<-SLV) THEN BTN=BTN OR 2
 IF (SX<-SLV) THEN BTN=BTN OR 4
 IF (SX>SLV)  THEN BTN=BTN OR 8
 RETURN  BTN
END

'---
@SPTABLE
DATA 1251 'じき1
DATA 1261 'じき2
DATA 1253 'じき3
DATA 1293 'ほのお1
DATA 1294 'ほのお2
DATA 1342 'たま
DATA 1376 'ばくはつA1
DATA 1377 'ばくはつA2
DATA 1378 'ばくはつA3
DATA 1379 'ばくはつA4
DATA 1380 'ばくはつB1
DATA 1381 'ばくはつB2
DATA 1382 'ばくはつB3
DATA 1383 'ばくはつB4
DATA 1310 'てきだん
DATA 1364 'ちゃくだん1
DATA 1365 'ちゃくだん2
DATA 1366 'ちゃくだん3
DATA 1367 'ちゃくだん4
DATA -1

'---
@TEKIDATA
'    キャラ,スケール,HP,かくど,マスク,アニメ,アニメMAX
DATA 1376,1.5, 9999, 0,&H000,4 '0:SMOKE

DATA 1309,2.5, 1,-1.57,&H00F,0 '1:FAT BEAM
DATA 1343,1.2, 1,-1.57,&H00F,0 '2:BEAM1
DATA 1309,  1, 1,-1.57,&H00F,0 '3:BEAM2

DATA 445 ,1.2, 1, 1.57,&H00F,0 '4:1UP ITEM
DATA 1223,1.2, 1, 1.57,&H00F,3 '5:BOMB ITEM
DATA    0,  0, 1,-1.57,0    ,0 '6:NOT USED
DATA    0,  0, 1,-1.57,0    ,0 '7:NOT USED

'てき
DATA 1206,1.2, 1,-1.57,&HFF0,4 '8(A)S CURVE
DATA 1210,1.8, 4,-1.57,&HFF0,3 '9(B)SW BACK
DATA 1213,1.5, 1,-1.57,&HFF0,2 '10(C)V SHOT
DATA 1215,1.2, 1,-1.57,&HFF0,0 '11(D)U TURN
DATA 1195,1.5, 3,-1.57,&HFF0,4 '12(E)FORTRESS
DATA 1216,1.5, 6,-1.57,&HFF0,0 '13(F)UFO
DATA 1304,  2, 2,-1.57,&HFF0,0 '14(G)HOMING
DATA 1203,1.5, 4,-1.57,&HFF0,2 '15(H)SIDE SHOT
DATA 1263,  1, 2,-1.57,&HFF0,0 '16(I)NEAR MISS
DATA 1290,  1, 2,-1.57,&HFF0,3 '17(J)SPIN
DATA 1346,  2, 4,-1.57,&HFF0,0 '18(K)HANABI
DATA 1466,  1,10,-1.57,&HFF0,0 '19(L)WALL



'みしよう
DATA  0,   0, 0, 0,&HFF0,0 '20(M)
DATA  0,   0, 0, 0,&HFF0,0 '21(N)
DATA  0,   0, 0, 0,&HFF0,0 '22(O)
DATA  0,   0, 0, 0,&HFF0,0 '23(P)
DATA  0,   0, 0, 0,&HFF0,0 '24(Q)
DATA  0,   0, 0, 0,&HFF0,0 '25(R)
DATA  0,   0, 0, 0,&HFF0,0 '26(S)
DATA  0,   0, 0, 0,&HFF0,0 '27(T)
DATA  0,   0, 0, 0,&HFF0,0 '28(U)
DATA  0,   0, 0, 0,&HFF0,0 '29(V)
DATA  0,   0, 0, 0,&HFF0,0 '30(W)
DATA  0,   0, 0, 0,&HFF0,0 '31(X)
DATA  0,   0, 0, 0,&HFF0,0 '32(Y)
DATA  0,   0, 0, 0,&HFF0,0 '33(Z)

'ボス
DATA 1417,  2,70,-1.57,&HFF0,0 '34 BOSS1
DATA 1418,  2,70,-1.57,&HFF0,0 '35 BOSS2
DATA 1447,  2,70,-1.57,&HFF0,0 '36 BOSS3
DATA 1275,  2,80,-1.57,&HFF0,0 '37 BOSS4
DATA 1289,  2,70,-1.57,&HFF0,0 '38 BOSS5
DATA 1457,  2,80,-1.57,&HFF0,0 '39 BOSS6
DATA 1436,  3,80, 1.57,&HFF0,2 '40 BOSS7



@BOOSTANIM
DATA 2
DATA 12,1293
DATA 12,1294

@SMOKEANIM
DATA 4
DATA 6,1376
DATA 6,1377
DATA 6,1378
DATA 6,1379

@BOMBANIM
DATA 4
DATA 6,1380
DATA 6,1381
DATA 6,1382
DATA 6,1383

'---STAGE1
@MAPDATA0
DATA 0   '0
DATA 1008 '1
DATA 773 '2
DATA 806 '3
DATA 775 '4
DATA 837 '5
DATA 710 '6
DATA 743 '7
DATA 711 '8
DATA 170 '9
DATA "66666666666666666666"
DATA "111  A A A A A  1111"
DATA "11               211"
DATA "111              121"
DATA "1221B        B  1221"
DATA "3333           78961"
DATA "1222            7711"
DATA "1222  B    B     611"
DATA "1                551"
DATA "111     C C      511"
DATA "111              441"
DATA "11               111"
DATA "66666666666666666666"
DATA "11   A            12"
DATA "11   A            11"
DATA "1    A            21"
DATA "11   A            23"
DATA "11               111"
DATA "11      B        111"
DATA "113             1222"
DATA "232         A   2333"
DATA "195         A   1222"
DATA "18          A    111"
DATA "171         A    111"
DATA "16                51"
DATA "151    A         111"
DATA "144    A          11"
DATA "334    A          11"
DATA "334    A           3"
DATA "66666666666666666666"
DATA ""

'---STAGE2
@MAPDATA1
DATA 0   '0
DATA 338 '1
DATA 338 '2
DATA 339 '3
DATA 369 '4
DATA 370 '5
DATA 445 '6
DATA 16829 '7
DATA 33213 '8
DATA 49597 '9
DATA "8      D  D  D    91"
DATA "1E               E11"
DATA "118              911"
DATA "1118             111"
DATA "11118            111"
DATA "111118   F      9111"
DATA "111116         91111"
DATA "11116          71111"
DATA "1116     F      7111"
DATA "116              711"
DATA "16                E1"
DATA "18               911"
DATA "118  F       F  9111"
DATA "116             7111"
DATA "16               711"
DATA "18   F   F   F    11"
DATA "118               E1"
DATA "11E               11"
DATA "111              911"
DATA "111             9111"
DATA "116            91111"
DATA "11             71111"
DATA "118             7111"
DATA "1118 D D  D D    111"
DATA "1111             E11"
DATA "111E             111"
DATA "1111     C C     711"
DATA "1116              71"
DATA "116     C   C      1"
DATA "16    C       C    7"
DATA ""

'---STAGE3
@MAPDATA2
DATA 0   '0
DATA 103 '1
DATA 104 '2
DATA 106 '3
DATA 120 '4
DATA 135 '5
DATA 136 '6
DATA 16520 '7
DATA 32904 '8
DATA 49288 '9
DATA "8     I       I  911"
DATA "18              9411"
DATA "118     B   B   1444"
DATA "1118            1111"
DATA "11118 B   B   B 1111"
DATA "444448          7111"
DATA "111116           111"
DATA "11116J           111"
DATA "1116             111"
DATA "111              111"
DATA "111   I  I I     111"
DATA "111              111"
DATA "111              111"
DATA "131              111"
DATA "111 H         H  111"
DATA "111              111"
DATA "111   H    H     131"
DATA "111              111"
DATA "111              111"
DATA "111      H      9111"
DATA "1118           91111"
DATA "11118          11111"
DATA "11111          14444"
DATA "44444          14111"
DATA "11111          14111"
DATA "11111          44444"
DATA "11211     F    11411"
DATA "11116 F      F 71411"
DATA "5556      F     7555"
DATA "                    "
DATA ""

'---STAGE4
@MAPDATA3
DATA 0   '0
DATA 147 '1
DATA 742 '2
DATA 105 '3
DATA 106 '4
DATA 135 '5
DATA 136 '6
DATA 334 '7
DATA 115 '8
DATA 32883 '9
DATA "99999999999999999999"
DATA "88888888888888888888"
DATA "11112 F  F   F 21111"
DATA "11112          21111"
DATA "11112 F      F 21111"
DATA "11112          21111"
DATA "11112          21111"
DATA "11112          21111"
DATA "11112  A    A  21111"
DATA "11112  A    A  21111"
DATA "11112  A    A  21111"
DATA "11112  A    A  21111"
DATA "11112          21111"
DATA "11112          21111"
DATA "11112          21111"
DATA "11112          21111"
DATA "11112   F   F  21111"
DATA "11112          21111"
DATA "11112    F F   21111"
DATA "11112          21111"
DATA "11112          21111"
DATA "11112 J        21111"
DATA "11112          21111"
DATA "11112 J        21111"
DATA "11112          21111"
DATA "11112        J 21111"
DATA "11112          21111"
DATA "11112        J 21111"
DATA "99999999999999999999"
DATA "88888888888888888888"
DATA ""

'---STAGE5
@MAPDATA4
DATA 0   '0
DATA 362 '1
DATA 300 '2
DATA 364 '3
DATA 365 '4
DATA 396 '5
DATA 397 '6
DATA 334 '7
DATA 269 '8
DATA 395 '9
DATA "18888888888888888881"
DATA "111  H H  H H H  111"
DATA "111              111"
DATA "111E  I I  I I  E111"
DATA "1221             221"
DATA "3333             111"
DATA "1222  K      K   111"
DATA "1222             111"
DATA "111K            K111"
DATA "111              999"
DATA "999             3456"
DATA "5634     K      5634"
DATA "3456            3456"
DATA "5634            5634"
DATA "34568888888888883456"
DATA "5634            5634"
DATA "1156              56"
DATA "11E              E11"
DATA "11               999"
DATA "99     G         222"
DATA "232   G           77"
DATA "11   G            22"
DATA "11             G  11"
DATA "222             G 11"
DATA "11                11"
DATA "11                11"
DATA "11  D          D  11"
DATA "11   D        D   11"
DATA "11    D      D    11"
DATA "99888888888888888899"
DATA ""

'---STAGE6
@MAPDATA5
DATA 0   '0
DATA 120 '1
DATA 152 '2
DATA 121 '3
DATA 154 '4
DATA 122 '5
DATA 153 '6
DATA 334 '7
DATA 459 '8
DATA 491 '9
DATA "11199999999999999111"
DATA "111     I   I    111"
DATA "111              511"
DATA "111    J     J   111"
DATA "111   J       J  111"
DATA "111              111"
DATA "111              111"
DATA "141 C          C 111"
DATA "111C C        C C111"
DATA "111              111"
DATA "111              611"
DATA "111              111"
DATA "111              111"
DATA "111              141"
DATA "111              111"
DATA "113              111"
DATA "111   J      J   111"
DATA "111     J  J     111"
DATA "111              111"
DATA "111              111"
DATA "111              131"
DATA "111              111"
DATA "111 I          I 111"
DATA "111              111"
DATA "111     I  I     111"
DATA "121              111"
DATA "111              111"
DATA "111              121"
DATA "111 D  D    D  D 111"
DATA "11199999999999999111"
DATA ""

'---STAGE7
@MAPDATA6
DATA 0   '0
DATA 653 '1
DATA 655 '2
DATA 590 '3
DATA 746 '4
DATA 715 '5
DATA 622 '6
DATA 686 '7
DATA 837 '8
DATA 620 '9
DATA "33555555555555555333"
DATA "332  LCC  L  CCL 133"
DATA "332              133"
DATA "332              133"
DATA "333   I       I  133"
DATA "333              133"
DATA "777              777"
DATA "444  H  H   H  H 444"
DATA "88855555555555555888"
DATA "444E            E444"
DATA "444     C  C     444"
DATA "444   C      C   444"
DATA "444 C          C 444"
DATA "88855555555555555444"
DATA "666     J        666"
DATA "392       J      133"
DATA "932     J        133"
DATA "392   L   J  L   133"
DATA "88555555555555555888"
DATA "332             1333"
DATA "3332      I     1333"
DATA "3332    I       1333"
DATA "3332      I     1333"
DATA "332              166"
DATA "332      L       177"
DATA "332              133"
DATA "332              133"
DATA "332E B B    B B E133"
DATA "33255555555555555133"
DATA "33                33"
DATA ""

'
'オワリ                                       
'

ページトップへ