0 GRAPHICS %0:V=DPEEK($58):W=V:POKE $52,%0:MOVE $E000,$B400,$0400:MOVE ADR("9999??999?????99999999??"),$B470,$90:POKE $02F4,$B4 1 O=ADR("@"):F=$04:DIM A(F,F):POKE 752,%1:DL=$B000:DPOKE DL,$7070:J=DL+%2:FOR I=%1 TO 13:POKE J,$47:J=J+%1:DPOKE J,W:J=J+%2:W=W+40:NEXT I:POKE J,$41:J=J+%1:DPOKE J,DL:J=J+%2:? :? ":;;;":? ":;;;":? ":;;;" 2 ? ":;;;":? ":;;;":? ":;;;":? ":;;;":? ":;;;":? ":;;;":? ":;;;<1024?=...>":? ":;;;<2047?=...>":T=J:FOR Y=%0 TO $0B:FOR M=%0 TO $0E:A=PEEK(V+Y*$28+M):POKE J,A!PEEK(O+Y MOD F):J=J+%1 3 NEXT M:NEXT Y:DPOKE $0230,DL 4 # S:CLS :FOR X=%1 TO F:FOR Y=%1 TO F:A(X,Y)=%0:NEXT Y:NEXT X 5 # R:POKE $02FC,$FF:E=%1:FOR X=%1 TO F:FOR Y=%1 TO F:IF NOT A(X,Y):E=%0:EXIT :ENDIF :NEXT Y:NEXT X:IF E:POSITION 5,5:A=PEEK(V):? "GaMe OvEr";:POKE V,A:GET X:GO# S:ENDIF :X=RAND(F)+%1:Y=RAND(F)+%1:IF A(X,Y)=%0:A(X,Y)=1:ELSE :GO# R:ENDIF 6 FOR Y=%0 TO %3:FOR X=%0 TO %3:A=A(X+%1,Y+%1):FOR M=%0 TO %2:MOVE T+$05*(A+A+A+M),V+$05*($08*(Y+Y+Y+M)+X),$05:NEXT M:NEXT X:NEXT Y 7 DO :K=PEEK($02FC)&$3F:IF K=$0E:G=%2:H=-%1:K=H:L=F:M=%1:GO# UP:ENDIF :IF K=$0F:G=%3:L=%1:M=-%1:H=%1:K=%1:GO# UP:ENDIF :IF K=$06:G=%2:H=F:K=%1:L=-%1:M=-%1:GO# LEFT:ENDIF :IF K=$07:G=%3:H=%1:K=-%1:L=%1:M=%1:GO# LEFT:ENDIF :LOOP 8 # UP:FOR X=%1 TO F:FOR I=G TO L STEP M:FOR Y=I TO G STEP H:IF A(X,Y+K)=%0:A(X,Y+K)=A(X,Y):A(X,Y)=%0:ELSE :IF A(X,Y+K)=A(X,Y):A(X,Y+K)=A(X,Y+K)+%1:A(X,Y)=%0:ENDIF :ENDIF :NEXT Y:NEXT I:NEXT X:GO# R 9 # LEFT:FOR Y=1 TO F:FOR I=G TO H STEP K:FOR X=I TO G STEP L:IF A(X+M,Y)=%0:A(X+M,Y)=A(X,Y):A(X,Y)=%0:ELSE :IF A(X+M,Y)=A(X,Y):A(X+M,Y)=A(X+M,Y)+%1:A(X,Y)=%0:ENDIF :ENDIF :NEXT X:NEXT I:NEXT Y:GO# R