10 ' **********************************
20 ' *                                *
30 ' *    MINED IN, PAR BOULDERMAN    *
40 ' *                                *
50 ' **********************************
60 '
70 ' *** INITIALISATION ***
80 '
90 DEFINT A-Z:MI=60:U=207:TER=1:DIM M(41,26):INK 3,24:INK 0,9:INK 1,6:PEN 1:PAPER 0
100 MODE 1:BORDER 2:ERASE M:DIM M(41,26) :WINDOW#1,1,40,1,3:PAPER#1,2:CLS#1:PEN#1,0:LOCATE#1,7,2:INK 3,24:PRINT#1,"MINES  A PROXIMITE :"
110 FOR I=2 TO 39:LOCATE I,4:PEN 2:PRINT CHR$(U):NEXT:FOR I=5 TO 24:LOCATE 40,I: PRINT CHR$(U):NEXT:FOR I=39 TO 2 STEP -1:LOCATE I,25:PRINT CHR$(U):NEXT:FOR I=24 TO 5 STEP -1:LOCATE 1,I:PRINT CHR$(U):NEXT:PEN 1:LOCATE 19,4:PRINT"   "
120 LOCATE 19,25:PRINT "   "
130 FOR I=0 TO MI:X=INT(RND*38)+2:Y=INT(RND*20)+5:M(X,Y)=1:NEXT
140 M(20,25)=0:X=20:Y=25:LOCATE X,Y:PRINT CHR$(248)
150 '
160 ' ****** BOUCLE PRINTCIPALE ******
170 '
180 IF M(X,Y+1)THEN V=V+1
190 IF M(X,Y-1)THEN V=V+1
200 IF M(X+1,Y)THEN V=V+1
210 IF M(X-1,Y)THEN V=V+1
220 GOSUB 390
230 Q$=INKEY$:IF Q$=""THEN 230
240 Q$=UPPER$(Q$)
250 LOCATE X,Y:PRINT CHR$(143);
260 X=X+(Q$="O")-(Q$="P")
270 Y=Y+(Q$="Q")-(Q$="A")
280 IF X<2 OR X>39 THEN 340
290 IF Y<4 THEN 430
300 IF Y>24 THEN 420
310 IF M(X,Y)THEN 340
320 LOCATE X,Y:PRINT CHR$(248);
330 GOTO 180
340 GOSUB 470:CLS#1:PRINT#1,STRING$(53,32);"*** JEU FINI ***"
350 FOR X=1 TO 40:FOR Y=1 TO 25:IF M(X,Y)THEN LOCATE X,Y:PEN 3:PRINT CHR$(181);
360 NEXT Y,X
370 FOR I=0 TO 19:Q$=INKEY$:NEXT
380 WHILE INKEY$="":WEND:RUN
390 IF V=0 THEN 410
400 SOUND 1,284,15,5:SOUND 1,200,10,5
410 LOCATE#1,27,2:PRINT#1,V:V=0:RETURN
420 IF X<>20 AND X<>19 AND X<>21 THEN 340 ELSE 310
430 IF X<>20 AND X<>19 AND X<>21 THEN 340
440 FOR X=1 TO 40:FOR Y=1 TO 25:IF M(X,Y) THEN LOCATE X,Y:PEN 3:PRINT CHR$(181);
450 NEXT Y,X:CLS#1:PRINT#1,"   BRAVO, VOUS AVEZ PASSE LE TERRAIN ":PRINT#1,TAB(15);"NUMERO";TER;:TER=TER+1:MI=MI+10
460 CALL &BB04:GOTO 100
470 OUT 255,8:OUT 256,1:FOR I=1 TO 100:SOUND 1,I,3:FOR J=248 TO 251:LOCATE X,Y:PRINT CHR$(J):NEXT J,I:OUT 256,2:RETURN