10 DEFINT a-z:c$="NE,SW,SE,NW":RANDOMIZE TIME:DIM z(30),e(30),g(30),h(50),j(50):MODE 1:INK 0,0:INK 1,1:INK 2,6:INK 3,26:PAPER 3:CLS:PEN 0:LOCATE 1,21:PRINT STRING$(40,"="):LOCATE 30,22:PRINT"Valid moves":LOCATE 32,23:PRINT"NW N NE":z$=CHR$(225):d$="died!"

20 m$=CHR$(248):LOCATE 33,24:PRINT"W ";m$;" E":LOCATE 32,25:PRINT"SW S SE":n=14+(RND*15):a=n:w=19+(RND*30):f=0:q=0:PEN 2:FOR c=1 TO n:z(c)=1:e(c)=1+(RND*39):g(c)=1+(RND*19):LOCATE e(c),g(c):PRINT z$:NEXT:PEN 0:FOR c=1 TO w:h(c)=1+(RND*39):j(c)=1+(RND*19)
30 LOCATE h(c),j(c):PRINT CHR$(231);:NEXT:LOCATE 14,21:PRINT"Thinking ... ":FOR c=1 TO n:FOR d=1 TO w:z(c)=1+((e(c)=h(d)) AND (g(c)=j(d))):a=a+(z(c)=0):NEXT d,c:x=1+(RND*39):y=1+(RND*19):LOCATE 14,21:PRINT"ZOMBIE ISLAND":LOCATE x,y:PEN 1:PRINT m$
40 LOCATE 1,22:PRINT CHR$(7);:INPUT "Your move :";g$:g$=UPPER$(g$):IF INSTR(c$,g$)=0 THEN PRINT"Try again":GOTO 40 ELSE FOR d=22 TO 25:LOCATE 1,d:PRINT SPACE$(29):NEXT:LOCATE x,y:PRINT" ":y=y+(g$="N")-(g$="S")+(g$="NW")-(g$="SW")+(g$="NE")-(g$="SE")
50 x=x-(g$="E")+(g$="W")-(g$="NE")+(g$="NW")-(g$="SE")+(g$="SW"):FOR c=1 TO w:IF x=h(c) AND j=j(c) THEN 100 ELSE NEXT c:FOR c=1 TO n:IF z(c)=1 AND x=e(c) AND y=g(c) THEN 100 ELSE NEXT c:LOCATE x,y:PRINT m$;:FOR c=1 TO n:IF z(c)=0 THEN 90
60 LOCATE e(c),g(c):PRINT" ";:r=(-1*(x>e(c)))+(1*(x<e(c))):v=(-1*(y>g(c)))+(1*(y<g(c))):e(c)=e(c)+r:g(c)=g(c)+v:FOR d=1 TO w:IF e(c)=h(d) AND g(c)=j(d) THEN f=1:GOSUB 100:z(c)=0:a=a-1
70 NEXT d:FOR s=1 TO n:IF c=s OR z(c)-0 OR z(s)=0 THEN 80 ELSE IF e(c)=e(s) AND g(c)=g(s) THEN z(s)=0:PEN 2:LOCATE 1,22:PRINT"One zombie squashed another2;:q=1:gosub 100:a=a-1:for d=1 to 50:next d:locate 1,22:?space$(29)
80 NEXT s:IF e(c)=x AND g(c)=y THEN PEN 2:LOCATE e(c),g(c):PRINT z$:q=1:GOSUB 100:GOTO 100 ELSE k=(z(c)<>0):WHILE k:LOCATE e(c),g(c):PEN 2:PRINT z$;::SOUND 1,1000,15,12,0,0,30:k=0:WEND
90 NEXT c:PEN 1:IF a<=0 THEN d$="WON!":GOTO 100 ELSE FOR d=22 TO 25:LOCATE 1,d:PRINT SPACE$(29):NEXT:GOTO 40
100 IF f=1 THEN FOR t=0 TO 18:SOUND 2,16+(t*35),5,12:NEXT:f=0:RETURN ELSE IF q=1 THEN SOUND 3,4000,10,12,0,0,10:q=0:RETURN ELSE PEN 1:LOCATE 1,23:PRINT"You ";d$;:LOCATE 1,24:PRINT"Press spacebar to play":WHILE INKEY$<>" ":WEND:RUN:WEND:RUN