0001 '┏━━━━━━━━━━┓ 0002 '┃ALIEN MAZE┃ 0003 '┗━━━━━━━━━━┛ 0004 'ゲーム初期化 0005 GOSUB @SYS_INIT 0006 GOSUB @GM_INIT 0007 'ゲームループ 0008 @GAMELOOP 0009 GOSUB @SYS_MAIN 0010 GOSUB @GM_TASK 0011 GOTO @GAMELOOP 0012 'システムの初期化 0013 @SYS_INIT 0014 CLEAR 0015 SYS_CNT=0 0016 SYS_KEY=BUTTON() 0017 RETURN 0018 'システムメイン 0019 @SYS_MAIN 0020 VSYNC 1 0021 SYS_CNT=(SYS_CNT+1)AND &H3FFFF 0022 RO=SYS_KEY 0023 SYS_KEY=BUTTON() 0024 R0=SYS_KEY XOR R0 0025 ON_KEY=R0 AND SYS_KEY 0026 OFF_KEY=RO AND(NOT SYS_KEY) 0027 RETURN 0028 'ゲームタスクの初期化 0029 @GM_INIT 0030 DIM MAP$(23) 0031 HISCORE=600 0032 GM_TF=0:RETURN 0033 'ゲームタスク 0034 @GM_TASK 0035 ON GM_TF GOTO @GM00,@GM01,@GM02,@GM03,@GM04,@GM05,@GM06,@GM07,@GM08,@GM09,@GM10 0036 RETURN 0037 'タイトルの表示 0038 @GM00 0039 CLS 0040 GOSUB @DISPSCR 0041 GOSUB @DISPCOK 0042 RESTORE @GM00 0043 COLOR 3 0044 FOR Y=5 TO 16 0045 READ S$ 0046 LOCATE 2,Y:PRINT S$; 0047 NEXT Y 0048 COLOR 0 0049 BGMPLAY 1 0050 GM_TF=1:RETURN
□ は、スペースを表します。
0051 DATA"┏━━━━━━━━━━━━━━━━━┓" 0052 DATA"┃□┏┓□┳□□□┳┏━━┓┏┓□┳┃" 0053 DATA"┃┏┛┗┓┃□□□┃┃□□┻┃┃□┃┃" 0054 DATA"┃┃□□┃┃□□□┃┣━┫□┃┗┓┃┃" 0055 DATA"┃┣━━┫┃□□┳┃┃□□┳┃□┃┃┃" 0056 DATA"┃┻□□┻┗━━┛┻┗━━┛┻□┗┛┃" 0057 DATA"┃┏┓□┏┓□┏┓□┏━━┓┏━━┓┃" 0058 DATA"┃┃┃□┃┃┏┛┗┓┻□┏┛┃□□┻┃" 0059 DATA"┃┃┗━┛┃┃□□┃□┏┛□┣━┫□┃" 0060 DATA"┃┃□□□┃┣━━┫┏┛□┳┃□□┳┃" 0061 DATA"┃┻□□□┻┻□□┻┗━━┛┗━━┛┃" 0062 DATA"┗━━━━━━━━━━━━━━━━━┛" 0063 'ゲーム開始チェック 0064 @GM01 0065 LOCATE 5,20:PRINT"□□□□□□□□□□□□"; 0066 IF SYS_CNT AND 8 GOTO @GM011 0067 LOCATE 5,20:PRINT"PUSH□ANY□KEY"; 0068 @GM011 0069 IF ON_KEY==0 THEN RETURN 0070 STAGNUM=0 0071 EMYNUM=1 0072 SCORE=0 0073 EMYCNT=5 0074 PLYCNT=3 0075 ' 0076 @STG_LOOP 0077 BGMPLAY 4 0078 GM_TF=2:RETURN 0079 'ステージ表示 0080 @GM02 0081 GOSUB @LOADSTG 0082 GOUSB @DISPSTG 0083 GOSUB @DISPINFO
□ は、スペースを表します。
0084 LOCATE 6,10:?"┏━━━━━━━━━┓"; 0085 LOCATE 6,11:?"┃STAGE□";STGNUM;"-";EMYNUM;"┃" 0086 LOCATE 6,12:?"┗━━━━━━━━━┛"; 0087 GM_CNT=3*60 0088 GM_TF=3:RETURN 0089 'ステージ番号表示中 0090 @GM03 0091 GM_CNT=GM_CNT-1 0092 IF GM_CNT>=0 THEN RETURN 0093 GOSUB @DISPSTG 0094 GOSUB @PLY_INIT 0095 'ステージの初期化 0096 GOSUB @EMY_INIT 0097 BGMPLAY 2 0098 GM_TF=4:RETURN 0099 'ゲームの実行 0100 @GM04 0101 GOSUB @PLY_TASK 0102 GOSUB @EMY_TASK 0103 'ゲーム終了判定 0104 IF ON_KEY==0 THEN RETURN 0105 BGMSTOP 0106 IF ON_KEY AND 16 GOTO @GM_OVER 0107 IF ON_KEY AND 32 GOTO @GM_CLR 0108 'ステージクリア 0109 EMYNUM=EMYNUM+1 0110 IF EMYNUM<6 GOTO @STG_LOOP 0111 EMYNUM=1 0112 STGNUM=STGNUM+1 0113 IF STGNUM>4 GOTO @GM_CLR 0114 GOTO @STG_LOOP 0115 'ゲームオーバー 0116 @GM_OVER 0117 BGMPLAY 6 0118 GM_TF=5:RETURN 0119 'ゲームオーバー画面表示 0120 @GM05 0121 RESTORE @GM05 0122 COLOR 13 0123 FOR Y=5 TO 16 0124 READ S$:LOCATE 2,Y:PRINT S$; 0125 NEXT Y 0126 COLOR 0 0127 GM_CNT=6*60 0128 GM_TF=6:RETURN
□ は、スペースを表します。
0129 DATA"┏━━━━━━━━━━━━━━━━━┓ 0130 DATA"┃┏━━┓□┏┓□┏┓□┏┓┏━━┓┃ 0131 DATA"┃┃□□┻┏┛┗┓┃┃□┃┃┃□□┻┃ 0132 DATA"┃┃┣━┓┃□□┃┃┗━┛┃┣━┫□┃ 0133 DATA"┃┃□□┃┣━━┫┃□□□┃┃□□┳┃ 0134 DATA"┃┗━━┛┻□□┻┻□□□┻┗━━┛┃ 0135 DATA"┃┏━━┓┳□□□┳┏━━┓┏━━┓┃ 0136 DATA"┃┃□□┃┃□□□┃┃□□┻┃□□┃┃ 0137 DATA"┃┃□□┃┗┓□┏┛┣━┫□┣━┳┛┃ 0138 DATA"┃┃□□┃□┃□┃□┃□□┳┃□┗┓┃ 0139 DATA"┃┗━━┛□┗━┛□┗━━┛┻□□┻┃ 0140 DATA"┗━━━━━━━━━━━━━━━━━┛ 0141 'ゲームオーバー画面表示中 0142 @GM06 0143 GM_CNT=GM_CNT-1 0144 IF GM_CNT>=0 THEN RETURN 0145 BGMSTOP 0146 GM_TF=0:RETURN 0147 'ゲームクリア 0148 @GM_CLR 0149 GM_TF=7:RETURN 0150 'ゲームクリア画面表示 0151 @GM07 0152 RESTORE @GM07 0153 COLOR 4 0154 FOR Y=5 TO 16 0155 READ S$ 0156 LOCATE 1,Y:PRINT S$; 0157 NEXT Y 0158 COLOR 0 0159 GM_CNT=6*60 0160 BGMPLAY 5 0161 GM_TF=8:RETURN
□ は、スペースを表します。
0162 DATA"┏━━━━━━━━━━━━━━━━━━━┓" 0163 DATA"┃□┏━━┓□┏┓□┏┓□┏┓┏━━┓□┃" 0164 DATA"┃□┃□□┻┏┛┗┓┃┃□┃┃┃□□┻□┃" 0165 DATA"┃□┃┣━┓┃□□┃┃┗━┛┃┣━┫□□┃" 0166 DATA"┃□┃□□┃┣━━┫┃□□□┃┃□□┳□┃" 0167 DATA"┃□┗━━┛┻□□┻┻□□□┻┗━━┛□┃" 0168 DATA"┃┏━━┓┳□□┏━━┓□┏┓□┏━━┓┃" 0169 DATA"┃┃□□┻┃□□┃□□┻┏┛┗┓┃□□┃┃" 0170 DATA"┃┃□□□┃□□┣━┫□┃□□┃┣━┳┛┃" 0171 DATA"┃┃□□┳┃□┳┃□□┳┣━━┫┃□┗┓┃" 0172 DATA"┃┗━━┛┗━┛┗━━┛┻□□┻┻□□┻┃" 0173 DATA"┗━━━━━━━━━━━━━━━━━━━┛" 0174 'ゲームクリア画面表示中 0175 @GM08 0176 GM_CNT=GM_CNT-1 0177 IF GM_CNT>=0 THEN RETURN 0178 'スタッフスクロール準備 0179 BGMPLAY 10 0180 Y=23 0181 GM_TF=9:RETURN 0182 'スタッフスクロール表示 0183 @GM09 0184 CLS 0185 LOCATE 7,Y 0186 PRINT"Programmer:RYO"; 0187 LOCATE 8,Y+1 0188 PRINT"Supporter:YUKI"; 0189 LOCATE 18,Y+2 0190 PRINT"KOJI"; 0191 Y=Y-0.01 0192 IF Y>=10 THEN RETURN 0193 GM_TF=10:RETURN 0194 '終了チェック 0195 @GM10 0196 IF ON_KEY==0 THEN RETURN 0197 BGMSTOP 0198 GM_TF=0:RETURN 0199 'スクリーン表示 0200 @DISPSCR 0201 COLOR 8 0202 FOR Y=0 TO 22 0203 LOCATE 0,Y
■ は、ブロックを表します。 □ は、スペースを表します。
0204 PRINT"■■■■■■■■■■■■■■■■■■■■■■■"; 0205 NEXT Y 0206 COLOR 0 0207 RETURN 0208 'コックピット表示 0209 @DISPCOK 0210 COLOR 0 0211 FPR Y=0 TO 22 0212 READ S$ 0213 LOCATE 23,Y 0214 PRINT"■■■■■■■■■"; 0215 NEXT Y 0216 COLOR 0 0217 LOCATE 24, 1:?"┏━━━━━┓"; 0218 LOCATE 24, 2:?"┃ALIEN┃"; 0219 LOCATE 24, 3:?"┃MAZE★┃"; 0220 LOCATE 24, 4:?"┗━━━━━┛"; 0221 LOCATE 24, 6:?"HISCORE"; 0222 LOCATE 24, 7:?"□□□□□□□"; 0223 LOCATE 24, 9:?"□□SCORE"; 0224 LOCATE 24,10:?"□□□□□□□"; 0225 LOCATE 24,12:?"□□STAGE"; 0226 LOCATE 24,13:?"□□□□□□□"; 0227 LOCATE 24,15:?"□PLAYER"; 0228 LOCATE 24,16:?"□□□□□□□"; 0229 LOCATE 24,18:?"□□ENEMY"; 0230 LOCATE 24,19:?"□□□□□□□"; 0231 LOCATE 24,21:?"RYO"; 0232 RETURN 0233 'コックピット情報表示 0234 @DISPINFO 0235 GOSUB @DISPPN 0236 GOSUB @DISPEN 0237 GOSUB @DISPHS 0238 GOSUB @DISPSC 0239 'ステージ番号表示 0240 @DISPSN 0241 LOCATE 28,23 0242 ?STGNUM+1;"-";EMYNUM; 0243 RETURN 0244 'プレーヤ数表示 0245 @DISPPN 0246 LOCATE 24,16
□ は、スペースを表します。 人 は、人間を表します。 敵 は、インベーダを表します。
0247 ?MID$("□□□□□□□人人人人人人人",PLYCNT,7); 0248 RETURN 0249 '敵数表示 0250 @DISPEN 0251 LOCATE 24,19 0252 ?MID$("□□□□□□□敵敵敵敵敵敵敵",EMYCNT,7); 0253 RETURN 0254 'ハイスコア表示 0255 @DISPHS 0256 LOCATE 24,7 0257 N=HISCORE 0258 GOTO @DISPN 0259 'スコア表示 0260 @DISPSC 0261 LOCATE 24,10 0262 N=SCORE 0263 'スコア文字列表示 0264 @DISPN 0265 N$=STR$(N) 0266 S$=MID$("00000"+N$+"0",LEN(N$)-1,7) 0267 PRINT S$; 0268 RETURN 0269 'ステージデータのロード 0270 @LOADSTG 0271 ON STGNUM GOTO @LS0,@LS1,@LS2,@LS3,@LS4 0272 @LS0 0273 RESTORE @DS3:GOTO @LS5 0274 @LS1 0275 RESTORE @DS2:GOTO @LS5 0276 @LS2 0277 RESTORE @DS1:GOTO @LS5 0278 @LS3 0279 RESTORE @DS0:GOTO @LS5 0280 @LS4 0281 RESTORE @DS4 0282 @LS5 0283 FOR I=0 TO 22 0284 READ MAP$(I) 0285 NEXT I 0286 RETURN 0287 'ステージデータの表示 0288 @DISPSTG 0289 COLOR 7 0290 FOR Y=0 TO 22 0291 LOCATE 0,Y:PRINT MAP$(Y); 0292 NEXT Y 0293 COLOR 0 0294 RETURN 0295 'ステージデータ 0296 @DS0
■ は、ブロックを表します。 □ は、スペースを表します。
0297 DATA"■■■■■■■■■■■■■■■■■■■■■■■" 0298 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0299 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0300 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0301 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0302 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0303 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0304 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0305 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0306 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0307 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0308 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0309 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0310 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0311 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0312 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0313 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0314 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0315 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0316 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0317 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0318 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0319 DATA"■■■■■■■■■■■■■■■■■■■■■■■" 0320 @DS1 0321 DATA"■■■■■■■■■■■■■■■■■■■■■■■" 0322 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0323 DATA"■□■■■■■■■■■□■■■■■■■■■□■" 0324 DATA"■□■■■■■■■■■□■■■■■■■■■□■" 0325 DATA"■□■■■■■■■■■□■■■■■■■■■□■" 0326 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0327 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0328 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0329 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0330 DATA"■□■■■□□□□□□□□□□□□□■■■□■" 0331 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0332 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0333 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0334 DATA"■□■■■□□□□□□□□□□□□□■■■□■" 0335 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0336 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0337 DATA"■□■■■□■■■□■■■□■■■□■■■□■" 0338 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0339 DATA"■□■■■■■■■■■□■■■■■■■■■□■" 0340 DATA"■□■■■■■■■■■□■■■■■■■■■□■" 0341 DATA"■□■■■■■■■■■□■■■■■■■■■□■" 0342 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0343 DATA"■■■■■■■■■■■■■■■■■■■■■■■" 0344 @DS2 0345 DATA"■■■■■■■■■■■■■■■■■■■■■■■" 0346 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0347 DATA"■□■■■■■■□■■■■■□■■■■■■□■" 0348 DATA"■□■■■■■■□■■■■■□■■■■■■□■" 0349 DATA"■□■■■■■■□■■■■■□■■■■■■□■" 0350 DATA"■□■■□□□□□□□■■■□■■□□□□□■" 0351 DATA"■□■■□■■■■■□■■■□■■□■■■□■" 0352 DATA"■□■■□■■■■■□■■■□■■□■■■□■" 0353 DATA"■□□□□□■■■■□□□□□□□□■■■□■" 0354 DATA"■□■■■□■■■■□■■■■■■□■■■□■" 0355 DATA"■□■■■□■■■■□■■■■■■□■■■□■" 0356 DATA"■□■■■□■■■■□■■■■■■□■■■□■" 0357 DATA"■□■■■□■■■■□■■■■■■□■■■□■" 0358 DATA"■□■■■□■■■■□■■■■■■□■■■□■" 0359 DATA"■□■■■□□□□□□□□□□■■□□□□□■" 0360 DATA"■□■■■□■■■■□■■■□■■■■■■□■" 0361 DATA"■□■■■□■■■■□■■■□■■■■■■□■" 0362 DATA"■□■■■□■■■■□■■■□■■■■■■□■" 0363 DATA"■□■■■□□□□□□■■■□■■■□□□□■" 0364 DATA"■□■■■□■■■■■■■■□■■■□■■□■" 0365 DATA"■□■■■□■■■■■■■■□■■■□■■□■" 0366 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0367 DATA"■■■■■■■■■■■■■■■■■■■■■■■" 0368 @DS3 0369 DATA"■■■■■■■■■■■■■■■■■■■■■■■" 0370 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0371 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0372 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0373 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0374 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0375 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0376 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0377 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0378 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0379 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0380 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0381 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0382 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0383 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0384 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0385 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0386 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0387 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0388 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0389 DATA"■□■■■■■□■■■■■■■□■■■■■□■" 0390 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0391 DATA"■■■■■■■■■■■■■■■■■■■■■■■" 0392 @DS4 0393 DATA"■■■■■■■■■■■■■■■■■■■■■■■" 0394 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0395 DATA"■□■□■□■□■□■□■□■□■□■□■□■" 0396 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0397 DATA"■□■□■□■□■□■□■□■□■□■□■□■" 0398 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0399 DATA"■□■□■□■□■□■□■□■□■□■□■□■" 0400 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0401 DATA"■□■□■□■□■□■□■□■□■□■□■□■" 0402 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0403 DATA"■□■□■□■□■□■□■□■□■□■□■□■" 0404 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0405 DATA"■□■□■□■□■□■□■□■□■□■□■□■" 0406 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0407 DATA"■□■□■□■□■□■□■□■□■□■□■□■" 0408 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0409 DATA"■□■□■□■□■□■□■□■□■□■□■□■" 0410 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0411 DATA"■□■□■□■□■□■□■□■□■□■□■□■" 0412 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0413 DATA"■□■□■□■□■□■□■□■□■□■□■□■" 0414 DATA"■□□□□□□□□□□□□□□□□□□□□□■" 0415 DATA"■■■■■■■■■■■■■■■■■■■■■■■" 0416 'プレイヤタスクの初期化 0417 @PLY_INIT 0418 RETURN 0419 'プレイヤタスク 0420 @PLY_TASK 0421 RETURN 0422 '敵タスクの初期化 0423 @EMY_INIT 0424 RETURN 0425 '敵タスク 0426 @EMY_TASK 0427 RETURN |