10 REM ZOMBIE ISLAND
20 GOSUB 520 30 N=10:PIT=10 40 Z=N 50 MODE 1:BORDER 3 60 PAPER 3:PEN 0:LOCATE 1,1:PRINT " ZOMBIE ISLAND "; 70 X=21:Y=19:LOCATE X,Y:PAPER 0:PEN 1:PRINT CHR$(249); 80 DIM A(N),B(N):FOR L=1 TO N 90 A(L)=INT(RND(1)*40+1):B(L)=INT(RND(1)*23+2) 100 XX=A(L):YY=B(L):GOSUB 660:IF DD<>32 THEN GOTO 90 110 LOCATE XX,YY:PEN 2:PRINT CHR$(225); 120 NEXT L 130 FOR L=1 TO PIT 140 XX=INT(RND(1)*40+1):YY=INT(RND(1)*23+2) 150 GOSUB 660:IF DD<>32 THEN GOTO 140 160 LOCATE XX,YY:PEN 3:PRINT CHR$(231); 170 NEXT L 180 C=0:D=0 190 C=C+1:IF C>N THEN C=1 200 IF A(C)=-1 THEN GOTO 190 210 S=SGN(X-A(C)):T=SGN(Y-B(C)) 220 XX=A(C)+S:YY=B(C)+T:GOSUB 660 230 IF DD=231 THEN GOSUB 400:LOCATE A(C),B(C):PAPER 0:PRINT" ";:A(C)=-1:LOCATE XX,YY:PRINT " ";:GOTO 270 240 IF DD=249 THEN GOTO 420 250 LOCATE A(C),B(C):PEN 2:PRINT" ";:A(C)=XX:B(C)=YY:LOCATE XX,YY:PRINT CHR$(225); 260 SOUND 0,300,10 270 IF INKEY(0)=0 THEN D=0 280 IF INKEY(2)=0 THEN D=2 290 IF INKEY(1)=0 THEN D=1 300 IF INKEY(8)=0 THEN D=8 310 S=X:T=Y:IF D=8 AND S>1 THEN S=S-1 320 IF D=1 AND S<40 THEN S=S+1 330 IF D=2 AND T<24 THEN T=T+1 340 IF D=0 AND T>2 THEN T=T-1 350 XX=S:YY=T:GOSUB 660:IF DD=231 THEN GOTO 420 360 IF DD=225 THEN GOTO 420 370 LOCATE X,Y:PEN 1:PRINT" ";:LOCATE S,T:PRINT CHR$(249); 380 X=S:Y=T 390 GOTO 190 400 Z=Z-1:IF Z=0 THEN GOTO 490 410 FOR L=1 TO 50:SOUND 1,L*10,1:NEXT L:RETURN 420 FOR L=1 TO 50:SOUND 1,RND(1)*2000+100,2:BORDER INT(RND(1)*24) 430 NEXT L 440 LOCATE 1,8:PAPER 3:BORDER 3:PEN 0:PRINT " CAUGHT BY THE ROBOTS " 450 LOCATE 1,25:PAPER 0:PEN 2:PRINT " PRESS <SPACE> TO PLAY AGAIN " 460 IF INKEY$=" " THEN GOTO 460 470 IF INKEY$<>" " THEN GOTO 470 480 RUN 490 REM PLAYER WIN ROUTINE 500 LOCATE 1,8:PAPER 3:BORDER 3:PEN 0:PRINT " YOU HAVE SURVIVED THE ISLAND " 510 GOTO 460 520 REM PUT MACHINE CODE JUST ABOVE RE-ADJUSTED HIMEM 530 MEMORY FRE(0)-&80 540 MC=HIMEM+1 550 TA=HIMEM+&7F 560 TH=INT(TA/256) 570 TL=TA-256*TH 580 POKE MC,&CD 590 POKE MC+1,&60 600 POKE MC+2,&BB 610 POKE MC+3,&32 620 POKE MC+4,TL 630 POKE MC+5,TH 640 POKE MC+6,&C9 650 RETURN 660 LOCATE XX,YY 670 CALL MC 680 DD=PEEK(TA) 690 RETURN |