001 CHRINIT "BGF0":BGPAGE 0 002 PNLTYPE "OFF":CLEAR 003 DIM BM(18,18) 004 BK=16 005 LIFE=3 006 STG=1 007 008 @SYOKI '------------------------------------ 009 BGMPLAY 26 010 CLS:GCLS:COLOR 0 011 MBK=0 012 MX=1:MY=1 013 014 FOR Y=0 TO 17 015 FOR X=0 TO 17 016 BM(X,Y)=0 017 NEXT X 018 NEXT Y 019 020 FOR I=1 TO BK 021 BM(RND(16)+1,RND(16)+1)=1 022 NEXT I 023 024 GFILL 47,31,175,160,27 025 026 FOR Y=1 TO 16 027 FOR X=1 TO 16 028 IF BM(X,Y)==1 THEN MBK=MBK+1 029 CC=BM(X-1,Y-1)+BM(X,Y-1)+BM(X+1,Y-1) 030 CC=CC+BM(X-1,Y)+BM(X,Y)+BM(X+1,Y) 031 CC=CC+BM(X-1,Y+1)+BM(X,Y+1)+BM(X+1,Y+1) 032 A$=STR$(CC) 033 IF CC==0 THEN A$=" " 034 LOCATE X+5,Y+3:PRINT A$ 035 NEXT X 036 NEXT Y 037 038 @MAIN '------------------------------------ 039 COLOR 0 040 GBOX MX*8+40,MY*8+24,MX*8+47,MY*8+31,27 041 LOCATE 23,8 :PRINT "LIFE" 042 LOCATE 26,8 :PRINT LIFE;" " 043 LOCATE 23,12:PRINT "STAGE" 044 LOCATE 26,13:PRINT STG 045 046 IF LIFE<=0 THEN @OVER 047 048 KY=BUTTON() 049 MX=MX+((MX<=15)AND(KY==8))-((MX>=2)AND(KY==4)) 050 MY=MY+((MY<=15)AND(KY==2))-((MY>=2)AND(KY==1)) 051 GBOX MX*8+40,MY*8+24,MX*8+47,MY*8+31,2 052 053 IF KY==16 THEN @HANTEI 054 IF KY==32 THEN COL1=7:GOSUB @KARI 055 IF KY==64 THEN COL1=0:GOSUB @KARI 056 IF KY==128 THEN COL1=243:GOSUB @KARI 057 058 VSYNC 8 059 GOTO @MAIN 060 061 @HANTEI '------------------------------------ 062 ON BM(MX,MY) GOTO @NULL,@BOMB,@MAIN 063 064 @NULL '------------------------------------ 065 BEEP 13:COLOR 7 066 LOCATE MX+5,MY+3:PRINT "+" 067 BM(MX,MY)=2:LIFE=LIFE-1 068 VSYNC 8 069 GOTO @MAIN 070 071 @BOMB '------------------------------------ 072 BEEP 3:COLOR 3 073 LOCATE MX+5,MY+3:PRINT "" 074 MBK=MBK-1:BM(MX,MY)=2 075 IF MBK==0 THEN @STCLEAR 076 VSYNC 10 077 GOTO @MAIN 078 079 @KARI '------------------------------------ 080 BEEP 0 081 COL2=GSPOIT(MX*8+44,MY*8+28) 082 IF COL2!=27 THEN COL1=27 083 GFILL MX*8+40,MY*8+24,MX*8+47.MY*8+31,COL1 084 VSYNC 4 085 RETURN 086 087 @KEYWAIT '------------------------------------ 088 KY=BUTTON() 089 IF KY==16 THEN RETURN 090 IF KY==32 THEN END 091 GOTO @KEYWAIT 092 093 @STCLEAR '------------------------------------ 094 BGMPLAY 5 095 LOCATE 8,21:PRINT "STAGE CLEAR!" 096 LIFE=LIFE+1:BK=BK+2:STG=STG+1 097 IF BK>=50 THEN BK=50 098 VSYNC 10 099 GOSUB @KEYWAIT 100 GOTO @SYOKI 101 102 @OVER '------------------------------------ 103 BGMPLAY 6:COLOR 12 104 LOCATE 9,21:PRINT "GAME OVER" 105 VSYNC 10 106 GOSUB @KEYWAIT 107 BK=16:LIFE=3:STG=1 108 GOTO @SYOKI 109 110 '============================================