10 WIDTH20,8:MEMSET&HB00:DEFINTA-O
20 OPTIONBASE0:DIMA(17,5),A$(17,5),CARD(64),DECK(64)
30 LOCATE5,2:PRINT"Minesweeper";:GOSUB460
40 A=VAL(RIGHT$(TIME$,2)):RANDOMIZEA:POKE&H11E,&HA:POKE&H11F,&H40
50 FORI=&HA40 TO&HA45:READJ$:J$="&H"+J$:J=VAL(J$):POKEI,J:NEXTI
60 FORI=0TO63:DECK(I)=I:NEXTI
70 FORI=64TO1STEP-1
80 O=INT(RND*I):CARD(64-I)=DECK(O)
90 FORJ=O TOI-1:DECK(J)=DECK(J+1)
100 NEXTJ:NEXTI:CARD(64)=CARD(0)
110 FORK=0TO7
120 FORI=0TO17:FORJ=0TO5:A(I,J)=0:A$(I,J)=CHR$(32):NEXTJ,I
130 FORO=0TO7:M=CARD(O+K*8)MOD16+1:N=CARD(O+K*8)\16+1
140 FORI=M-1TOM+1:FORJ=N-1TON+1
150 A(I,J)=A(I,J)+1:A$(I,J)=CHR$(A(I,J)+48):NEXTJ,I,O
160 FORO=0TO7:M=CARD(O+K*8)MOD16+1:N=CARD(O+K*8)\16+1:A$(M,N)=CHR$(153):NEXTO
170 M=CARD((8+K*8)MOD64)MOD16+1:N=CARD((8+K*8)MOD64)\16+1:A$(M,N)=CHR$(150)
180 I=CARD((K*8+63)MOD64)MOD16+1:J=CARD((K*8+63)MOD64)\16+1
190 FORO=0TO3:LOCATE2,O:PRINTSTRING$(16,140);:NEXTO
200 LOCATES0,0,0:LOCATEI+1,J-1:PRINTCHR$(154);
210 A$=INPUT$(1):A=ASC(A$)
220 IFA<28ORA>31THENSOUND21,1:SOUND11,1:SOUND1,1:GOTO210ELSEA=A-27
230 ONA GOSUB340,370,400,430
240 IFA$(I,J)=CHR$(150)THENLOCATEI+1,J-1:PRINTA$(I,J);:GOSUB480:L=L+1:GOTO270
250 IFA$(I,J)=CHR$(153)THENLOCATEI+1,J-1:PRINTA$(I,J);:GOSUB490:L=L-1:GOTO270
260 GOTO210
270 A$=INKEY$:A$=INKEY$:A$=INKEY$:A$=INKEY$
280 FORO=0TO8:M=CARD(O+K*8)MOD16+1:N=CARD(O+K*8)\16+1
290 LOCATEM+1,N-1:PRINTA$(M,N);:NEXTO
300 NEXTK
310 FORO=0TO999:NEXTO
320 CLS:L=L\2+4:LOCATE0,0:PRINTSTRING$(L,150);:PRINTSTRING$(K-L,153)
330 GOSUB500:END
340 LOCATEI+1,J-1:PRINTA$(I,J);
350 I=I+1:IFI=17THENI=16:SOUND21,1:SOUND11,1:SOUND1,1
360 LOCATEI+1,J-1:PRINTCHR$(154);:SOUND20,1:RETURN
370 LOCATEI+1,J-1:PRINTA$(I,J);
380 I=I-1:IFI=0THENI=1:SOUND21,1:SOUND11,1:SOUND1,1
390 LOCATEI+1,J-1:PRINTCHR$(154);:SOUND20,1:RETURN
400 LOCATEI+1,J-1:PRINTA$(I,J);
410 J=J-1:IFJ=0THENJ=1:SOUND21,1:SOUND11,1:SOUND1,1
420 LOCATEI+1,J-1:PRINTCHR$(154);:SOUND20,1:RETURN
430 LOCATEI+1,J-1:PRINTA$(I,J);
440 J=J+1:IFJ=5THENJ=4:SOUND21,1:SOUND11,1:SOUND1,1
450 LOCATEI+1,J-1:PRINTCHR$(154);:SOUND20,1:RETURN
460 FORI=4TO11:FORJ=8TO15:K=(I*I*J)MOD56+1
470 SOUNDK,1:SOUNDK+28,1:NEXTJ,I:RETURN
480 FORI=1TO3::FORJ=56TO51STEP-1::SOUNDJ,1:SOUND51,1:SOUND56,1:NEXTJ,I:RETURN
490 FORI=1TO2:FORJ=56TO1STEP-4::SOUNDJ,1:SOUNDJ+1,1:NEXTJ,I:RETURN
500 FORK=1TO2:FORL=1TO4:FORI=1TO112STEP4:J=ABS(I-56):SOUNDJ+31,1:SOUNDJ,1:NEXTI,L
510 FORI=1TO112:J=I^2-56*(I^2\56):SOUNDJ,1:NEXTI,K:RETURN
520 DATA56,25,2F,25,56,0
