Last active
April 19, 2025 02:31
-
-
Save fu-sen/7274471 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
' BOOM! | MSX-BASIC | |
' Copyright (c) 2003-2024 BALLOON | FU-SEN | |
' The MIT License (MIT) - https://mit.balloon.net.eu.org/#2003-2024 | |
100 T=RND(-TIME) | |
110 DEFINT A-Z:DIM B(32,23) | |
120 SCREEN 1:KEY OFF:WIDTH 32 | |
130 COLOR ,4:CLS:INPUT"BOOM";B | |
140 COLOR ,12:CLS | |
150 FOR I=1 TO B | |
160 LOCATE 0,0,0:PRINT"WAIT";I; | |
170 X=RND(1)*32:Y=RND(1)*23 | |
180 B(X,Y)=255 | |
190 IF X=0 GOTO 220 | |
200 IF B(X-1,Y)=255 GOTO 220 | |
210 B(X-1,Y)=B(X-1,Y)+1 | |
220 IF X=31 GOTO 250 | |
230 IF B(X+1,Y)=255 GOTO 250 | |
240 B(X+1,Y)=B(X+1,Y)+1 | |
250 IF Y=0 GOTO 280 | |
260 IF B(X,Y-1)=255 GOTO 280 | |
270 B(X,Y-1)=B(X,Y-1)+1 | |
280 IF Y=22 GOTO 310 | |
290 IF B(X,Y+1)=255 GOTO 310 | |
300 B(X,Y+1)=B(X,Y+1)+1 | |
310 NEXT I:LOCATE 0,0 | |
320 FOR I=1 TO 736:PRINT".";:NEXT I | |
330 X=RND(1)*32:Y=RND(1)*23 | |
340 IF B(X,Y)=255 GOTO 330 | |
350 GOSUB 590 | |
360 S=STICK(0)+STICK(1):XX=X:YY=X | |
370 X=X-(S=7)*(X>0)+(S=3)*(X<31) | |
380 Y=Y-(S=1)*(Y>0)+(S=5)*(Y<22) | |
390 IF XX=X AND YY=Y GOTO 410 | |
400 LOCATE X,Y,1 | |
410 IF STRIG(0)+STRIG(1)<>-1 GOTO 360 | |
420 LOCATE ,,0 | |
430 IF B(X,Y)=255 GOTO 510 | |
440 IF VPEEK(&H1800+Y*32+X)<>46 GOTO 470 | |
450 T=T+1:LOCATE 0,23,0 | |
460 PRINT"SCORE ";T; | |
470 IF B(X,Y)>0 GOTO 490 | |
480 GOSUB 590:GOTO 360 | |
490 LOCATE X,Y:PRINT CHR$(&H30+B(X,Y)); | |
500 GOTO 360 | |
510 COLOR ,8:FOR X=0 TO 31 | |
520 FOR Y=0 TO 23 | |
530 IF B(X,Y)<>255 GOTO 550 | |
540 LOCATE X,Y,0:PRINT"*"; | |
550 NEXT Y:NEXT X | |
560 IF STRIG(0)+STRIG(1)<>-1 GOTO 560 | |
570 IF STRIG(0)+STRIG(1)=-1 GOTO 130 | |
580 GOTO 570 | |
590 IF B(X,Y)=0 GOTO 620 | |
600 LOCATE X,Y:PRINT CHR$(&H30+B(X,Y)); | |
610 RETURN | |
620 LOCATE X,Y:PRINT " "; | |
630 RETURN |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment