100 REM*********************************
105 REM*        PARA LINHA APPLE       *
110 REM*                               *
115 REM*             ZUMBI             *
120 REM*********************************
125 DIM A(9,9),PL$(2),M0$(2),SW$(2),RA$(2),DR$(2)
130 BE$=CHR$(7)+CHR$(7):BE$=BE$+BE$+BE$
175 FOR C=0 TO 9
140 A(0,C)=-1:A(C,0)=-1
145 A(9,C)=-1:A(C,9)=-1
150 NEXT
155 A(1,0)=1
160 READ PL$(1),PL$(2)
165 READ MO$(1),MO$(2)
170 READ SW$(1),SW$(2)
175 READ RA$(1),RA$(2)
180 GOSUB 670:GOTO 635
185 DATA 0000011001100000,13
190 DATA 1001011001101001,1
195 DATA 1111111111111111,12
200 DATA 1111111111111111,7
205 REM
210 REM ** PRINT T$ AT X,Y **
215 FOR I=0 TO 3
220 YP=4*Y+I:P$=MID$(T$,4*I+1,4)
225 FOR L=0 TO 3
230 XP=4*X+L:C$=MID$(P$,L+1,1)
235 IF C$="1" THEN PLOT XP,YP
240 NEXT L,I
245 RETURN
250 REM ** INICIALIZA **
255 HOME :GR :COLOR=12
260 FOR YP=4 TO 35
265 HLIN 4,35 AT YP
270 NEXT
275 COLOR=4
280 HLIN 8,36 AT 3:HLIN 3,36 AT 36
285 VLIN 3,36 AT 3:VLIN 3,36 AT 36
290 PX=8:PY=8:A(8,8)=1
295 X=PX:Y=PY
300 T$=RA$(1):COLOR=VAL(RA$(2)):GOSUB 210
305 T$=PL$(1):COLOR=VAL(PL$(2)):GOSUB 210
310 RETURN
315 REM ** MOVIMENTA **
320 REM
325 VTAB 1:GET IN$
330 DX=(IN$="K")-(IN$="J")
335 DY=(IN$="M")-(IN$="I")
340 IF DX=0 AND DY=0 THEN 325
345 ON A(PX+DX,PY+DY)+1GOTO 355,380
350 GOTO 325
355 REM
360 X=PX+DX:Y=PY+DY
365 T$=RA$(1):COLOR=VAL(RA$(2)):GOSUB 210
370 A(X,Y)=1
375 RETURN
380 REM
385 X=PX:Y=PY
390 T$=RA$(1):COLOR=VAL(RA$(2)):GOSUB 210
395 PX=PX+DX:PY=PY+DY
400 X=PX:Y=PY
405 T$=PL$(1):COLOR=VAL(PL$(2)):GOSUB 210
410 IF PY>0 THEN RETURN
415 REM ** CHEGA AO FINAL **
420 HOME :VTAB 22:HTAB 1
425 PRINT "VOCE CONSEGUIU !!!"BE$;:END
430 REM ** MOVIMENTO DO MONSTRO **
435 MX=8:MY=8:X=MX:Y=MY
440 T$=MO$(1):COLOR=VAL(MO$(2)):GOSUB 210
445 ON INT(RND(1)*2+1)GOSUB 520,525
450 LX=DX:LY=DY
455 REM ** ESCOLHE NOVA DIRECAO **
460 IF A(MX+LX,MY+LY)<1 THEN 480
465 IF A(MX+LY,MY-LX)=1 OR A(MX-LY,MY+LX)=1 THEN 500
470 REM ** MESMA DIRECAO **
475 DX=LX:DY=LY:GOTO 540
480 REM ** PANTANO A FRENTE **
485 ON INT(RND(1)*4+1)GOSUB 520,525,530,535
490 IF A(MX+DX,MY+DY)=-1 THEN 485
495 GOTO 540
500 REM ** POSSIBILIDADES **
505 ON INT(RND(1)*4+1)GOSUB 520,525,530,535
510 IF DX=-LX AND DY=-LY OR A(MX+DX,MY+DY)<1 THEN 470
515 GOTO 540
520 DX=0:DY=-1:RETURN
525 DX=-1:DY=0:RETURN
570 DX=0:DY=1:RETURN
535 DX=1:DY=0:RETURN
540 REM ** EXECUTA MOVIMENTO **
545 X=MX:Y=MY
550 T$=RA$(1):COLOR=VAL(RA$(2)):GOSUB 210
555 MX=MX+DX
560 MY=MY+DY
565 LX=DX:LY=DY
570 X=MX:Y=MY
575 T$=M0$(1):COLOR=VAL(M0$(2)):GOSUB 210
580 IF MX=PX AND MY=PY THEN 620
585 IF A(MX,MY)=0 THEN 595
590 GOTO 455
595 REM ** MONSTRO AFOGA-SE **
600 A(MX,MY)=-1
605 X=MX:Y=MY
610 TS=DR$(1):COLOR=VAL(DR$(2)):GOSUB 210
615 RETURN
620 REM ** JOGADOR INTERCEPTADO **
625 HOME :VTAB 22:HTAB 1
630 PRINT "DESCULPE—ME, MAS VOCE FOI COMIDO !"BE$;:END
635 REM ** PROGRAMA PRINCIPAL **
640 GOSUB 250
645 GOSUB 315
650 M=M+1
655 IF INT(RND(1)*(PX+PY))>3 OR M<5 THEN 645
660 GOSUB 430
665 GOTO 645
670 REM ** INSTRUCOES **
675 TEXT :HOME :PRINT TAB(18)"ZUMBI"
680 VTAB 4:PRINT "VOCE ENCONTRA-SE EM UM PANTANO AS ESCU—"
685 PRINT :PRINT "RAS, E TEM QUE ACHAR SEU CAMINHO PARA"
690 PRINT :PRINT "FORA. MAS COMO DESGRACA POUCA E' BOBA—"
695 PRINT :PRINT "GEM, ZUMBIS DO ALEM VAO A SUA PROCURA "
700 PRINT :PRINT "TENTANDO MATA—LO. BOA SORTE !!!"
705 PRINT :PRINT :INVERSE :PRINT "I";:NORMAL :PRINT "-CIMA      ";:INVERSE :PRINT "M";:NORMAL :PRINT "-BAIXO"
710 PRINT :INVERSE :PRINT "J";:NORMAL :PRINT "-ESOUERDA  ";:INVERSE :PRINT "K";:NORMAL:PRINT "-DIREITA"
715 VTAB 23:PRINT "QUALQUER TECLA PARA CONTINUAR";
720 GET A$
725 RETURN

