123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501 |
- cls:print"Loading STAR WITCH..."
- locate 10,10:print "○○○○";
- 100 cls:gosub 17000 'オープニング
- 1000 cls
- 1010 print "┏━━━━━━━━━┳━━━━━━━┳━━━━━━━━┓";
- 1020 print "┃ 12345678┃ ┃ ┃";
- 1030 print "┃1 ┃ENERGY ┃ ジャンプ ┃";
- 1040 print "┃2 ┃ ┃ ┃";
- 1050 print "┃3 ┃MISSILE┃ バーニア ┃";
- 1060 print "┃4 ┃ ┃ ┃";
- 1070 print "┃5 ┃LEFT ┃ ウェーブ ┃";
- 1080 print "┃6 ┃ ┃ ┃";
- 1090 print "┃7 ┃DAY ┃ ミサイル ┃";
- 1100 print "┃8 ┃ ┃ ┃";
- 1110 print "┣━━━━━━━━━┻━━━━━━━┻━━━━━━━━┫";
- 1120 print "┃ ┃";
- 1130 print "┃ ┃";
- 1140 print "┃ ┃";
- 1150 print "┃ ┃";
- 1160 print "┃ ┃";
- 1170 print "┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛";
- 1175 print " STAR WITCH ~ゴブリン帝国の野望~";
- 1180 rem 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7
- 1190 rem
- 2000 rem 初期化
- 2005 randomize tick
- 2010 E=4000 'EはWITCH号のエネルギー
- 2020 M=10 'MはWITCH号の所持ミサイル
- 2030 L=10 'Lはクリアすべきエリアの残り数
- 2040 D=1 'Dは現在の日数 (1アクション1日)
- 2042 S=0 'WITCH号のX位置
- 2044 T=0 'WITCH号のY位置
- 2050 A=0 '@(A)~@A(A+8*8-1)までが現在エリアの内容
- 2060 '0:なし -1:小惑星 -2:輸送船
- 2061 '正数はゴブリン戦艦でエネルギー量
- 2065 W=A+8*8 'ワークエリアに使って良い配列の先頭位置
- 2070 B=0 'エリア作成時の輸送船の数
- 2080 G=0 'エリア作成時のゴブリン戦艦の数
- 2090 S=1+rnd(4) 'エリア作成時の小惑星の数
- 2095 H=0 '通算の撃破ゴブリン戦艦数
- 2100 P=11 'メッセージエリアのY位置 (良く参照されるので変数に置く)
- 2200 rem エリア進入
- 2210 gosub 10000
- 3000 rem ターン開始
- 3010 gosub 25000 'ステータス更新
- 3020 gosub 12000 '補給チェックと実行
- 3030 gosub 11000 '敵の攻撃
- 3100 rem コマンド選択
- 3105 gosub 20000:locate 2,P+2:print "艦長、ご指示を";
- 3110 c=0
- 3120 locate 20, 2+(c*2):print "→";
- 3200 s=wait
- 3205 locate 20, 2+(c*2):print " ";
- 3210 if s and scan_a then goto 4000+(c*1000)
- 3220 if s and scan_x1 then c=c-1:if c<0 then c=3
- 3230 if s and scan_x3 then c=c+1:if c>3 then c=0
- 3290 goto 3120
- 4000 '*******ジャンプ*******
- 4010 f=0
- 4020 for y=0 to 7:for x=0 to 7
- 4030 if @(A+x+y*8) > 0 then f=f+1
- 4040 next:next
- 4050 if f=0 then goto 4200
- 4060 gosub 20000
- 4070 locate 2,P+1:print "艦長!";
- 4080 locate 2,P+3:print "ゴブリン戦艦がまだ";f;"隻もいます!"
- 4090 d=wait
- 4100 gosub 20000
- 4110 goto 3100
- 4200 ' 行き先候補
- 4210 gosub 20000
- 4215 locate 2,P:print "目的地を指示してください"
- 4220 for i=0 to 2
- 4230 @(W+i*3)=1+rnd(5) 'ゴブリン戦艦1~5隻
- 4240 @(W+i*3+1)=0:if rnd(3)=0 then @(W+i*3+1)=1 '輸送船は1/3の確率
- 4250 @(W+i*3+2)=1+rnd(4) '小惑星1~5個
- 4260 locate 4,P+1+i
- 4270 print "ゴブリン";@(W+i*3);
- 4280 print " 輸送船";@(W+i*3+1);
- 4290 print " 小惑星"@(W+i*3+2);
- 4300 next
- 4400 rem 候補を選ぶ
- 4410 c=0
- 4420 locate 2, P+1+c:print "→";
- 4500 s=wait
- 4505 locate 2, P+1+c:print " ";
- 4510 if s and scan_a then goto 4600
- 4520 if s and scan_x1 then c=c-1:if c<0 then c=2
- 4530 if s and scan_x3 then c=c+1:if c>2 then c=0
- 4590 goto 4420
- 4600 ' 次のエリアに行く
- 4610 B=@(W+c*3+1)
- 4620 G=@(W+c*3)
- 4630 S=@(W+c*3+2)
- 4700 gosub 20000
- 4710 locate 2,P+1:print "ハイパースペース・ドライブ";
- 4720 locate 2,P+3:print " スタンバイOK!"
- 4730 d=wait
- 4740 gosub 20000
- 4750 locate 2,P+2:print "次のエリアにジャンプします";
- 4760 d=wait
- 4780 gosub 20000
- 4785 for y=0 to 7:for x=0 to 7:locate 2+x,2+y:print "※";:next:next
- 4790 waitvb 75
- 4795 if E>10 then E=E-10:goto 4800
- 4796 locate 2,P+1:print "艦長! エネルギーが足りません!";
- 4797 locate 4,P+3:print "通常空間に復帰できません!!";
- 4798 d=wait:goto 19000
- 4800 locate 2,P+2:print "ジャンプ成功! レーダー動作します";
- 4810 d=wait
- 4820 gosub 20000
- 4890 D=D+1:L=L-1:goto 2200
- locate 10,10:print "●○○○";
- 5000 '******バーニア*******
- 5010 gosub 20000
- 5020 locate 2,P+1:print "エリア内移動・スタンバイ";
- 5030 locate 2,P+3:print "コースは? (0-360)";
- 5040 X=21:Y=P:gosub 21000
- 5050 if Z<0 then goto 3100 'キャンセルされた
- 5060 if Z<=360 then s=Z:goto 5100
- 5070 gosub 20000
- 5080 locate 2,P+1:print "艦長!";
- 5090 locate 2,P+3:print "コースは0から360までです!";
- 5095 d=wait:goto 5010
- 5100 gosub 20000
- 5110 locate 2,P+1:print "エリア内移動・スタンバイ";
- 5120 locate 2,P+3:print "距離は? (1-12)";
- 5130 X=21:Y=P:gosub 21000
- 5140 if Z<0 then goto 5010 'キャンセルされた
- 5145 if Z>E+1 then goto 5190
- 5150 if Z>=1 and Z<=12 then l=Z:E=E-l:goto 5200
- 5155 gosub 20000
- 5160 locate 2,P+1:print "艦長!";
- 5170 locate 2,P+3:print "距離は1から12までです!";
- 5180 d=wait:goto 5100
- 5190 gosub 20000
- 5192 locate 2,P+1:print "艦長!";
- 5194 locate 2,P+3:print "エネルギーが足りません!";
- 5198 d=wait:goto 5100
- 5200 '移動アニメーション
- 5210 gosub 20000
- 5215 'locate 2+S,2+T:print " ";
- 5220 X=s:gosub 23000:a=Y
- 5230 X=s:gosub 22000:b=-Y '反時計回りにしたいのでマイナス
- 5235 c=S:d=T '最後に有効であった座標を持つ
- 5240 i=1:j=0 'iは本当の移動距離。jは見かけ上の移動距離
- 5250 x=S+a*i/100
- 5260 y=T+b*i/100
- 5261 'debug S,T,x,y,a,b,i,s
- 5262 if x<0 or x>7 or y<0 or y>7 then goto 5400
- 5264 if @(A+x+y*8)=0 then goto 5270
- 5266 gosub 20000:locate 2,P+2:print "衝突回避! 緊急停止!";d=wait
- 5268 goto 5400 'ループを強制終了させる
- 5270 if c=x and d=y then goto 5300 '見かけ上の移動が起きていない
- 5272 j=j+1
- 5275 locate 2+x,2+y:print "W";
- 5280 locate 2+c,2+d:print " ";:c=x:d=y
- 6285 D=D+1:gosub 25000
- 5290 waitvb 75
- 5300 i=i+1:if j<l then goto 5250
- 5400 S=c:T=d
- 5410 locate 2+S,2+T:print "W";
- 5500 goto 3000
- 6000 '*****ウェーブ*****
- 6010 gosub 20000
- 6020 locate 2,P+1:print "ウェーブキヤノン・スタンバイ";
- 6030 locate 2,P+3:print " エネルギー量は? (1-";E-1;")";
- 6040 X=21:Y=P:gosub 21000
- 6050 if Z<0 then goto 3100 'キャンセルされた
- 6060 if Z>=1 and Z<=E-1 then s=Z:goto 6100
- 6070 gosub 20000
- 6080 locate 2,P+1:print "艦長!";
- 6090 locate 2,P+3:print " エネルギー量は1から";E-1;"までです!";
- 6095 d=wait:goto 6010
- 6100 gosub 20000
- 6110 ' 存在するオブジェクト数を数える
- 6120 f=0
- 6130 for y=0 to 7:for x=0 to 7
- 6140 if @(A+x+y*8) <> 0 then f=f+1
- 6150 next:next
- 6160 e=s/f:if e<1 then e=1 'eは1標的あたりの攻撃量
- 6170 gosub 20000
- 6180 locate 2,P+2:print "ウェーブキヤノン・発射!";
- 6190 d=wait
- 6200 for y=0 to 7:for x=0 to 7
- 6210 if @(A+x+y*8) <= 0 then goto 6400
- 6220 gosub 20000
- 6230 locate 2,P+1:print "(";x+1;",";y+1;")のゴブリン戦艦にダメージ";e;
- 6240 @(A+x+y*8)=@(A+x+y*8)-e:if @(A+x+y*8)<=0 then @(A+x+y*8)=0:goto 6300
- 6245 locate 4,P+3:print "(残りエネルギー";@(A+x+y*8);")";
- 6250 d=wait
- 6290 goto 6400
- 6300 locate 4,P+3:print "ゴブリン戦艦、撃沈!";:H=H+1
- 6350 X=x:Y=y:gosub 24000 '爆発
- 6400 next:next
- 6900 E=E-s:
- 6910 if L=0 then gosub 26000:if Y=0 then goto 18000
- 6920 D=D+1:goto 3000
- locate 10,10:print "●●○○";
- 7000 '******ミサイル******
- 7010 if M>0 then goto 7100
- 7020 gosub 20000
- 7030 locate 2,P+1:print "艦長!";
- 7040 locate 2,P+3:print "ミサイルの残弾はゼロです!";
- 7050 d=wait
- 7090 goto 3100
- 7100 gosub 20000
- 7110 locate 2,P+1:print "ミサイル・スタンバイ";
- 7120 locate 2,P+3:print "コースは? (0-360)";
- 7130 X=21:Y=P:gosub 21000
- 7140 if Z<0 then goto 3100 'キャンセルされた
- 7150 if Z<=360 then s=Z:goto 7200
- 7160 gosub 20000
- 7170 locate 2,P+1:print "艦長!";
- 7180 locate 2,P+3:print "コースは0から360までです!";
- 7190 d=wait:goto 7100
- 7200 '移動アニメーション
- 7205 M=M-1:gosub 25000
- 7210 gosub 20000
- 7220 X=s:gosub 23000:a=Y
- 7230 X=s:gosub 22000:b=-Y '反時計回りにしたいのでマイナス
- 7235 i=1
- 7240 c=S:d=T '最後に有効であった座標を持つ
- 7250 x=S+a*i/100
- 7260 y=T+b*i/100
- 7270 'debug S,T,x,y,a,b,i,s
- 7280 if x<0 or x>7 or y<0 or y>7 then goto 7500
- 7290 if @(A+x+y*8)<>0 then goto 7600
- 7320 if c=x and d=y then goto 7370 '見かけ上の移動が起きていない
- 7340 locate 2+x,2+y:print "M";
- 7350 waitvb 75
- 7360 locate 2+x,2+y:print " ";:c=x:d=y
- 7370 i=i+1:goto 7250
- 7400 goto 3000
- 7500 'はずれ!
- 7510 gosub 20000
- 7515 locate 2,P+1:print "艦長!";
- 7520 locate 4,P+3:print "攻撃は失敗です!";
- 7530 d=wait
- 7590 D=D+1:goto 3000
- 7600 'あたり!
- 7610 gosub 20000
- 7620 locate 2,P+1:print "艦長!";
- 7630 locate 4,P+3
- 7640 if @(A+x+y*8)=-1 then print "小惑星に命中しました!";
- 7650 if @(A+x+y*8)=-2 then print "輸送船に命中しました!";
- 7660 if @(A+x+y*8)>0 then print "ゴブリン戦艦に命中しました!";
- 7670 X=x:Y=y:gosub 24000 '爆発
- 7680 'd=wait
- 7690 gosub 20000
- 7700 locate 4,P+2
- 7710 if @(A+x+y*8)=-1 then print "小惑星の消滅を確認!";
- 7720 if @(A+x+y*8)=-2 then print "輸送船乗組員の救助のため10日必要です";:D=D+1
- 7730 if @(A+x+y*8)>0 then print "ゴブリン戦艦を撃沈!";:H=H+1
- 7740 @(A+x+y*8)=0 'そこにはもう何もない
- 7750 d=wait
- 7760 if L=0 then gosub 26000:if Y=0 then goto 18000
- 7790 D=D+1:goto 3000
- 10000 rem エリア作成
- 10005 for y=0 to 7:for x=0 to 7:@(A+x+y*8)=0:next:next
- 10010 if B=0 then goto 10100
- 10020 for i=0 to B-1
- 10030 x=rnd(8):y=rnd(8)
- 10040 if @(A+x+y*8) <> 0 then goto 10030
- 10050 @(A+x+y*8)=-2
- 10060 next
- 10100 if G=0 then goto 10200
- 10105 for i=0 to G-1
- 10110 x=rnd(8):y=rnd(8)
- 10120 if @(A+x+y*8) <> 0 then goto 10110
- 10130 @(A+x+y*8)=400+rnd(200) 'ゴブリン戦艦のエネルギー初期値
- 10140 next
- 10200 for i=0 to S-1
- 10210 x=rnd(8):y=rnd(8)
- 10220 if @(A+x+y*8) <> 0 then goto 10210
- 10230 @(A+x+y*8)=-1
- 10240 next
- 10250 'WITCH号の位置を確定
- 10260 S=rnd(7):T=rnd(7)
- 10270 if @(A+S+T*8) <> 0 then goto 10260
- 10300 gosub 10500
- 10400 return
- 10500 'レーダー作動
- 10510 for y=0 to 7:for x=0 to 7
- 10520 locate x+2,y+2
- 10530 t=@(A+x+y*8)
- 10540 if t=0 then print " ";
- 10550 if t=-1 then print "*";
- 10560 if t=-2 then print "T";
- 10570 if t>0 then print "G";
- 10580 next:next
- 10590 locate S+2,T+2:print "W";
- 10600 return
- 11000 '*****敵の攻撃*****
- 11010 for y=0 to 7:for x=0 to 7
- 11020 if @(A+x+y*8) <= 2 then goto 11900
- 11025 n=@(A+x+y*8)/4+rnd(@(A+x+y*8)/2):if n<1 then 11900
- 11030 gosub 20000
- 11040 locate 2,P+1:print "(";x+1;",";y+1;")のゴブリン戦艦よりの攻撃!";
- 11050 d=wait
- 11070 locate 4,P+3:print "WITCH号に";n;"のダメージ!";
- 11075 @(A+x+y*8)=@(A+x+y*8)-n
- 11080 E=E-n:if E<0 then E=0
- 11090 gosub 25000
- 11100 d=wait
- 11110 if E>0 then goto 11900
- 11120 gosub 20000
- 11130 locate 2,P+1:print "艦長!";
- 11130 locate 4,P+3:print "エネルギーがもうありません!";
- 11140 gosub 20000
- 11150 locate 2,P+1:print "防御バリア機能停止";
- 11160 locate 4,P+3:print "WITCH号の船体が砕けます!";
- 11170 X=S:Y=T:gosub 24000 '爆発
- 11180 gosub 20000
- 11190 goto 19000 'BAD ENDING
- 11900 next:next
- 11910 return
- locate 10,10:print "●●●○";
- 12000 '補給チェックと実行
- 12020 f=0
- 12030 if S>0 then if @(A+(S-1)+T*8)=-2 then f=1
- 12040 if S<7 then if @(A+(S+1)+T*8)=-2 then f=1
- 12050 if T>0 then if @(A+S+(T-1)*8)=-2 then f=1
- 12060 if T<7 then if @(A+S+(T+1)*8)=-2 then f=1
- 12070 if f=0 then return
- 12080 gosub 20000
- 12090 locate 2,P+1:print "艦長!";
- 12100 locate 4,P+3:print "輸送船から補給を受けます。";
- 12110 d=wait
- 12120 E=4000:M=10
- 12130 gosub 25000 'ステータス更新
- 12190 return
- 17000 'OPENING
- 17010 cls
- 17020 for i=0 to 1
- 17030 locate 2,2:print "緊急指令!"
- 17040 waitvb 30
- 17050 locate 2,2:print " "
- 17060 waitvb 30
- 17070 next
- 17100 locate 2,2:print "緊急指令!"
- 17110 cls:print
- 17120 waitvb 30:print " かねてより":print
- 17130 waitvb 30:print " 我が地球連邦政府に敵対していた":print
- 17140 waitvb 30:print " 凶悪なゴブリン帝国が":print
- 17150 waitvb 30:print " 多数の宇宙戦艦で侵攻してきた":print
- 17155 print
- 17160 waitvb 30:print " 連邦艦隊ナンバーワン艦長の君に命じる":print
- 17170 waitvb 30:print " 最新鋭戦艦WITCH号を指揮し":print
- 17180 waitvb 30:print " 侵入したゴブリン戦艦を撃破せよ"
- 17190 d=wait
- 17200 cls
- 17210 for i=0 to 4
- 17220 if i=4 then locate 2, 2:print" ■■■ ■■■■■ ■ ■■■■"
- 17230 if i=3 then locate 2, 3:print" ■ ■ ■ ■ ■ ■"
- 17240 if i=2 then locate 2, 4:print" ■■■ ■ ■■■ ■■■■"
- 17250 if i=1 then locate 2, 5:print" ■ ■ ■ ■ ■ ■"
- 17260 if i=0 then locate 2, 6:print" ■■■ ■ ■ ■ ■ ■"
- 17270 if i=0 then locate 2, 9:print"■ ■ ■ ■ ■■■ ■■■ ■ ■"
- 17280 if i=1 then locate 2,10:print"■ ■ ■ ■ ■ ■ ■ ■ ■ ■"
- 17290 if i=2 then locate 2,11:print"■ ■ ■ ■ ■ ■ ■ ■■■■"
- 17300 if i=3 then locate 2,12:print"■ ■ ■ ■ ■ ■ ■ ■ ■ ■"
- 17310 if i=4 then locate 2,13:print" ■ ■ ■ ■ ■■■ ■ ■"
- 17320 waitvb 30:next
- 17330 locate 9,15:print "~ゴブリン帝国の野望~";
- 17340 d=wait
- 17400 cls
- 17410 print " ***WITCH号の最新装備を紹介する***":print
- 17420 waitvb 30:print " 量子レーダー:"
- 17430 print " W←WITCH号 *←小惑星"
- 17440 print " G←ゴブリン戦艦 T←輸送船":print
- 17450 waitvb 30:print " 超空間ジャンプドライブ:"
- 17460 print " エリア内の敵を全滅させたら次のエリアに進める。":print
- 17470 waitvb 30:print " バーニア:"
- 17480 print " エリア内を移動できる。":print
- 17490 waitvb 30:print " ウェーブキヤノン:"
- 17500 print " エリア内のすべての敵を同時攻撃":print
- 17510 waitvb 30:print " 反応弾頭ミサイル:"
- 17520 print " 敵艦も小惑星も一撃で粉砕する"
- 17590 d=wait
- 17600 cls
- 17610 locate 8,8:print "それでは健闘を祈る!"
- 17690 d=wait
- 17700 cls
- 17710 locate 5,8:print "艦長! WITCH号、出港します!"
- 17790 d=wait
- 17900 return
- 18000 'GOOD ENDING
- 18010 cls:print
- 18020 waitvb 75:print " 作戦開始後";D;"日":print
- 18030 waitvb 75:print " ";H;"隻の戦艦を失った":print
- 18032 waitvb 75:print " ゴブリン帝国は、全面降伏した":print
- 18035 waitvb 75:print " 宇宙の平和は守られたのだ":print
- 18040 waitvb 75:print " WITCH号ならびに艦長の活躍をたたえ":print
- 18050 waitvb 75:print " 全人類から感謝の言葉をおくる":print
- 18060 waitvb 75:locate 10,14:print "ありがとう!"
- 18070 waitvb 75:locate 10,16:print "CONGRATURATIONS!";
- 18080 d=wait
- 18090 end
- locate 10,10:print "●●●●";
- 19000 'BAD ENDING
- 19010 cls:print
- 19020 waitvb 75:print " 作戦開始後";D;"日":print
- 19030 waitvb 75:print " WITCH号、宇宙の藻屑と消える":print
- 19040 waitvb 75:print " この日、地球連邦政府は、ゴブリン帝国に降伏":print
- 19050 waitvb 75:print " 地球人はゴブリン帝国の奴隷となった":print
- 19060 waitvb 75:locate 17,16:print "GAME OVER!";
- 19080 d=wait
- 19090 end
- 20000 ' clear message
- 20010 for i=11 to 15:locate 1,i
- 20020 print " ";
- 20030 next
- 20040 return
- 21000 ' 数値入力
- 21010 locate X,Y+0:print "┏━━━━┓";
- 21020 locate X,Y+1:print "┃ ┃";
- 21030 locate X,Y+2:print "┃0000┃";
- 21040 locate X,Y+3:print "┃ ┃";
- 21050 locate X,Y+4:print "┗━━━━┛";
- 21100 for i=0 to 3:@(W+i)=0:next
- 21110 v=3 '桁位置
- 21200 locate X+v+1,Y+1:print "↑";
- 21210 locate X+v+1,Y+3:print "↓";
- 21220 for i=0 to 3:locate X+i+1,Y+2:print @(W+i);:next
- 21300 s=wait
- 21310 locate X+v+1,Y+1:print " ";
- 21320 locate X+v+1,Y+3:print " ";
- 21330 if s and scan_x3 then @(W+v)=@(W+v)-1:if @(W+v)<0 then @(W+v)=9
- 21340 if s and scan_x1 then @(W+v)=@(W+v)+1:if @(W+v)>9 then @(W+v)=0
- 21350 if s and scan_x2 then v=v+1:if v>3 then v=0
- 21360 if s and scan_x4 then v=v-1:if v<0 then v=3
- 21365 if s and scan_a then goto 21400
- 21370 if s and scan_b then Z=-1:return
- 21380 goto 21200
- 21400 Z=@(W+0)*1000+@(W+1)*100+@(W+2)*10+@(W+3)
- 21410 return
- 22000 ' 疑似三角関数(Y=sin(X)) Y=-100...100 X=0-360
- 22010 X=X/5
- 22020 if X<=18 then gosub 22100:return
- 22030 if X<=36 then X=36-X:gosub 22100:return
- 22040 if X<=54 then X=X-36:gosub 22100:Y=-Y:return
- 22050 if X<=72 then X=72-X:gosub 22100:Y=-Y:return
- 22060 X=X-72:goto 22020
- 22100 if X=0 then Y=0
- 22110 if X=1 then Y=8
- 22120 if X=2 then Y=17
- 22130 if X=3 then Y=25
- 22140 if X=4 then Y=34
- 22150 if X=5 then Y=42
- 22160 if X=6 then Y=49
- 22170 if X=7 then Y=57
- 22180 if X=8 then Y=64
- 22190 if X=9 then Y=70
- 22200 if X=10 then Y=76
- 22210 if X=11 then Y=81
- 22220 if X=12 then Y=86
- 22230 if X=13 then Y=90
- 22240 if X=14 then Y=93
- 22250 if X=15 then Y=96
- 22260 if X=16 then Y=98
- 22270 if X=17 then Y=99
- 22280 if X=18 then Y=99
- 22290 return
- 23000 ' 疑似三角関数(cos)
- 23010 X=X+90:gosub 22000:return
- 24000 ' 爆発アニメーション
- 24005 locate 2+X,2+Y:print "・";:waitvb 30
- 24010 locate 2+X,2+Y:print "●";:waitvb 30
- 24020 locate 2+X,2+Y:print "※";:waitvb 30
- 24030 locate 2+X,2+Y:print " ";
- 24040 d=wait
- 24090 return
- 25000 '******ステータス表示更新*****
- 25010 locate 11,3:print " ";
- 25020 locate 14,3:print E;
- 25030 locate 11,5:print " ";
- 25040 locate 14,5:print M;
- 25050 locate 11,7:print " ";
- 25060 locate 14,7:print L;
- 25070 locate 11,9:print " ";
- 25080 locate 14,9:print D;
- 25090 return
- 26000 ' エリア内残り敵戦艦を数えてYに返す
- 26010 Y=0
- 26020 for y=0 to 7:for x=0 to 7
- 26030 if @(A+x+y*8)>0 then Y=Y+1
- 26040 next:next
- 26090 return
- cls:print"Loading Completed"
|