@ 0x0000 A 0x0000 B 0x0000 C 0x0000 D 0x0000 E 0x0000 F 0x0000 G 0x0000 H 0x0000 I 0x0000 J 0x0000 K 0x0000 L 0x0000 M 0x0000 N 0x0000 O 0x0000 P 0x0000 Q 0x0000 R 0x0000 S 0x0000 T 0x0000 U 0x0000 V 0x0000 W 0x0000 X 0x0000 Y 0x0000 Z 0x0000 [ 0x0000 \ 0x0000 ] 0x0000 ^ 0x0000 _ 0x0000 0x0000 ! 0x0000 " 0x0000 # 0x0000 $ 0x0000 % 0x0000 & 0x052b ' 0x0000 ( 0x0000 ) 0x0000 * 0x4000 + 0x0000 , 0x0000 - 0x0000 . 0x0000 / 0x0000 0 0x0000 1 0x0000 2 0x0000 3 0x0000 4 0x0000 5 0x0000 6 0x0000 7 0x0000 8 0x0000 9 0x0000 : 0x0000 ; 0x0000 < 0x0000 = 0x0000 > 0x0000 ? 0x0000 00100 ) 00110 ) Mine Sweeper 00120 ) 00200 ) Initialize --- size of field: NxN, number of mines: M 00205 ) Content of Array: 48-56: examined, 45: not examined, 0: mine 00210 N=10 00220 M=10 00230 I=0 00240 #=270*(I>(N*N)) 00250 :I)=45 00255 I=I+1 00260 #=240 00270 I=0 00280 #=400*(I>M) 00290 T='/(N*N) 00300 T=% 00310 #=290*(:T)=0) 00320 :T)=0 00325 I=I+1 00330 #=280 00400 ) Main 00405 A=N*N-M 00406 X=0 00407 Y=0 00408 Z=0 00410 #=1000 00420 ?=">>> (<-:4, ->:6, ^:8, v:2, SPC:open) --- "; 00430 K=$ 00435 ?="" 00440 X=X+N+(K=54)-(K=52)/N 00450 X=% 00460 Y=Y+N+(K=50)-(K=56)/N 00470 Y=% 00471 Z=Y*N+X 00475 #=550*(1-(K=32)) 00480 #=502*(1-(:Z)=0)) 00490 ?="*** GAME OVER ***" 00500 #=65535 00502 #=550*(1-(:Z)=45)) 00505 A=A-1 00506 #=510*(A>1) 00507 ?="*** CONGRATULATIONS ***" 00508 #=65535 00510 T=((:Z-N-1)=0)*(X>1*(Y>1)))+((:Z-N)=0)*(Y>1)) 00515 T=T+((:Z-N+1)=0)*(X<(N-1)*(Y>1))) 00520 T=T+((:Z-1)=0)*(X>1))+((:Z+1)=0)*(X<(N-1))) 00530 T=T+((:Z+N-1)=0)*(X>1*(Y<(N-1))))+((:Z+N)=0)*(Y<(N-1))) 00535 T=T+((:Z+N+1)=0)*(X<(N-1)*(Y<(N-1)))) 00540 :Z)=T+48 00550 #=410 01000 ) Display the field 01010 R=! 01020 I=0 01030 #=1140*(I>N) 01040 J=0 01050 #=1110*(J>N) 01060 $=10*(I*N+J=Z)+32 01070 T=:I*N+J) 01080 $=45*(T=0)+T 01090 J=J+1 01100 #=1050 01110 ?="" 01120 I=I+1 01130 #=1030 01140 #=R