プログラムリスト
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 ""
'
'オワリ
'