1 REM ******************************
2 REM *       PARA LINHA APPLE     *
3 REM *                            *
4 REM *      PALACIO DE CRISTAL    *
5 REM ******************************
6 REM
7 REM *    INICIALIZA PALAVRA '&'  *
10 DATA201,084,208,015,032,177,000,032,248,230,138,072,032,183,000,201,044,240,003,076,201,222,032,177,000,032,248,230
20 FOR 1=768 TO 833:READ P:POKE I,P:NEXT I
30 DATA104,134,003,134,001,133,000,170,060,001,132,002,173,048,192,136,208,004,198
40 DATA001,240,007,202,208,246,166,000,208,239,165,003,133,001,198,002,208,241,096
50 POKE 1013,76:POKE 1014,0:POKE 1015,3
60 TEXT:HOME
70 GOSUB 2000
100 DIM FC(5,7):DIM FC$(5)
105 FC$(1)="NORTE":FC$(2)="SUL":FC$(3)="LESTE":FC$(4)="OESTE"
110 FOR B=1 TO 4:FOR I=1 TO 6:READ FC(B,I):NEXT:NEXT
115 GOTO 155
116 REM *
117 REM * DESENHA SALAS DO LABIRINTO *
118 REM *
120 HPLOT 0,0 TO 279,0 TO 279,159 TO 0,159 TO 0,0 TO 69,29 TO 209,29 TO 209,129 TO 69,129 TO 69,29:HPLOT 209,29 TO 279,0:HPLOT 209,129 TO 279,159:HPLOT 69,129 TO 0,159:RETURN
125 RETURN
130 HPLOT 109,9 TO 169,9 TO 159,19 TO 119,19 TO 109,9:HPLOT 119,19 TO 119,9:HPLOT 159,19 TO 159,9:RETURN
135 HPLOT 119,139 TO 159,139 TO 169,149 TO 109,149 TO 119,139:HPLOT 119,139 TO 119,149:HPLOT 159,139 TO 159,149:RETURN
140 HPLOT 19,39 TO 49,49 TO 49,139:HPLOT 19,149 TO 19,39:HPLOT 19,139 TO 49,139:HPLOT 19,49 TO 49,49:RETURN
145 HPLOT 119,59 TO 159,59 TO 159,129 TO 119,129 TO 119,59 TO 129,69 TO 149,69 TO 149,119 TO 129,119 TO 129,69:HPLOT 149,69 TO 159,59:HPLOT 149,110 TO 159,129:HPLOT 129,119 TO 119,129:RETURN
150 HPLOT 229,49 TO 259,39 TO 259,149:HPLOT 229,139 TO 229,49:HPLOT 229,49 TO 259,49:HPLOT 229,139 TO 259,139:RETURN
151 REM *                            *
152 REM * GERA PASSAGENS ENTRE SALAS *
153 REM *                            *
155 DIM S$(6,6)
165 FOR A=1 TO 5:FOR X=1 TO 5:FOR Y=1 TO 5
167 & T10 * A + 10 * X + 10 * Y,10
170 IF A <> 5 AND RND(1) < .80 THEN S$(X,A)=S$(X,A)+"O":GOTO 180
175 S$(X,A)=S$(X,A)+"X"
180 IF MID$(S$(X,A-1),(Y-1)*6+1,1)="0" THEN S$(X,A)=S$(X,A)+"O":GOTO 190
185 S$(X,A)=S$(X,A)+"X"
190 IF Y-2 < 0 THEN 200
195 IF MID$(S$(X,A),(Y-2)*6+4,1)="O" THEN S$(X,A)=S$(X,A)+"O":GOTO 205
200 S$(X,A)=S$(X,A)+"X"
205 IF Y <> 5 AND RND(1) < .8  THEN S$(X,A)=S$(X,A)+"O":GOTO 215
210 S$(X,A)=S$(X,A)+"X"
215 IF X <> 5 AND RND(1) < .8  THEN S$(X,A)=S$(X,A)+"O":GOTO 225
220 S$(X,A)=S$(X,A)+"X"
225 IF MID$(S$(X-1,A),(Y-1)*6+5,I)="O" THEN S$(X,A)=S$(X,A)+"0":GOTO 235
230 S$(X,A)=S$(X,A)+"X"
235 NEXT:NEXT:NEXT
240 X = INT (RND (1) * 3) + 2  : Y = INT (RND (1) * 3) + 2  : A = INT (RND (1) * 3) + 2
245 RD = INT (RND (1) * 6) + 1: ON RD GOTO 250,255,260,265,270,275
250 A=5:P1$=LEFT$(S$(X,A),(Y-1)*6):L=29-LEN(P1$):P2$=RIGHT$(S$(X,A),L):S$(X,A)=P1$+"O"+P2$:GOT0280
255 A=1:P1$=LEFT$(S$(X,A),(Y-1)*6+1):L=29-LEN(P1$):P2$=RIGHT$(S$(X,A),L): S$(X,A)=P1$+"O"+P2$:GOTO 280
260 Y=5:P1$=LEFT$(S$(X,A),(Y-1)*6+3):L=29-LEN(P1$):P2$=RIGHT$(S$(X,A),L): S$(X,A)=P1$+"O"+P2$:GOTO 280
265 Y=1:P1$=LEFT$(S$(X,A),(Y-1)*6+2):L=29-LEN(P1$):P2$=RIGHT$(S$(X,A),L): S$(X,A)=P1$+"O"+P2$:GOTO 280
270 X=5:P1$=LEFT$(S$(X,A),(Y-1)*6+4):L=29-LEN(P1$):P2$=RIGHT$(S$(X,A),L): S$(X,A)=P1$+"O"+P2$:GOTO 280
275 X=1:P1$=LEFT$(S$(X,A),(Y-1)*6+5):L=29-LEN(P1$):P2$=RIGHT$(S$(X,A),L): S$(X,A)=P1$+"O"+P2$:GOTO 280
280 SX=X:SY=Y:SA=A
290 VTAB 23:PRINT "QUALQUER TECLA PARA COMECAR"
300 IF PEEK(-16384) < 127 THEN 300
310 POKE -16368,0
1000 X = INT (RND (1) * 5) + 1 : Y = INT (RND (1) * 5) + 1 : A = INT (RND (1) * 5) + 1 : FC=1:GOTO 1220
1010 HOME:VTAB 22:HTAB 18:PRINT FC$(FC) :A$="":D=0:IF LS=1 THEN PRINT X,Y,A
1020 VTAB 22:PRINT "TEMPO :";T:FOR TEMPO=1 TO 80
1025 IF PEEK(-16384) > 127 THEN 1030
1027 NEXT:T=T+I:VTAB 22:PRINT "TEMPO :";T:GOTO 1020
1030 GET A$
1035 IF AS = "*" THEN LS = 1
1040 IF AS = "F" THEN 1300
1050 IF AS = "C" THEN D = 1
1060 IF AS = "B" THEN D = 2
1070 IF AS = "N" THEN D = 3
1080 IF AS = "S" THEN D = 4
1090 IF AS = "L" THEN D = 5
1100 IF AS = "?" THEN 1290
1110 IF AS = "O" THEN D = 6
1120 IF AS = "V" THEN 1280
1130 IF D = 0 THEN 1010
1135 T=T+1
1140 IF MID$(S$(X,A),(Y-1)*6+D,1) <> "O" THEN PRINT CHR$(7): GOTO 1010
1150 ON D GOTO 1160,1170,1180,1190,1200,1210
1160 A=A+1:GOTO 1220
1170 A=A-1:GOTO 1220
1180 Y=Y-1:GOTO 1220
1190 Y=Y+1:GOTO 1220
1200 X=X+1:GOTO 1220
1210 X=X-1
1220 IF X> 5 OR X< 1 OR Y> 5 OR Y< 1 OR A > 5 OR A < 1 THEN PRINT "VOCE GANHOU":& T100,100:& T100,50:& T100,50:& T75,66:& T100,66;& T75,66:& T60,255:GOTO 3000
1230 HGR:HCOLOR=3:HPLOT0,0:CALL 62454:HCOLOR=0:GOSUB 120
1240 FOR I=1 TO 6:IF MID$(S$(X,A),(Y-1)*6+I,1)="X" THEN NEXT:GOTO 1010
1250 R=FC(FC,I)+1
1260 HCOLOR=0:ON R GOSUB 125,130,135,140,145,150
1270 NEXT:GOTO 1010
1280 INPUT "QUE DIRECAO 1-N 2-S 3-L 4-O";FC:IF FC <1 OR FC >4 THEN 1280
1285 GOTO 1220
1286 REM *          PERDIDO ?         *
1290 INVERSE:HTAB 18:PRINT SX;"  ";SY;"  ";SA:NORMAL:GOTO 1220
1295 REM *     FIM POR DESISTENCIA    *
1300 TEXT:HOME:END
1400 REM *                            *
1410 REM *         INSTRUCOES         *
1420 REM *                            *
2000 VTAB 12:HTAB 14:INVERSE:PRINT "PALA CIO DE CRISTAL":NORMAL:VTAB 22:INPU T "QUER INSTRUCOES "";YS: IF LEFTS( Y$0) <> "S" THEN RETURN
2010 HOME:VTAB 2:PRINT "0 OBJETIVO DO JOGO E' ACHAR A SAIDA DE":PRINT:PRIN T "UM PALACIO COM 5 ANDARES E 25 SA LAS POR":PRINT:PRINT "ANDAR. OU SEJ A,UM LABIRINTO ONDE APENAS"
2020 PRINT:PRINT "UMA SALA CONTEM A SAID A, E VOCE DFVERA":PRINT:PRINT "ENC ONTRA-LA NO MENOR TEMPO POSSIVEL.": PRINT:PRINT "OS COMANDOS SAO:"
2030 PRINT:HTAB 6:INVERSC:PRINT "C";:NOR MAL:PRINT "-CIMA"::HTAS 17:INVFRSE: PRINT "S";:NORMAL:PRINT "-SUL"
2040 PRINT:HTAB 6:INVERSE:PRINT "B";:NOR MAL:PRINT "-BAIXO";:HTAB 17:INVERSE :PRINT "L";:NORMAL:PRINT "-LESTE"
2050 PRINT:HTAB 6:INVERSE:PRINT "N";:NOR MAL:PRINT "-NORTE"::HTAB 17:INVERSE :PRINT "0";:NORMAL:PRINT "-OESTE"
2060 PRINT:HTAB 6:INVERSE:PRINT "F";:NOR MAL:PRINT "-FIM";:HTAB 17:INVERSE:P RINT "V"::NORMAL:PRINT "-VISAO"
2070 VTAB 23:INVERSE:PRINT "ESPACO";:NOR MAL:PRINT " PARA. CONTINUAR"
2080 IF PEEK(-16384) < 127 THEN 2080
2090 POKE -16368,0:HOME:INVERSE:PRINT "V";:NORMAL:PRINT " O COMPUTADOR PERGUNTARA EM QUE DIRE-":PRINT:PRINT "CAO VOCE DESEJA OLHAR.
2100 PRINT:PRINT "POR FAVOR AGUARDE ENQUANTO E GERADO  ":PRINT:PRINT "NOVO LABIRINTO":PRINT:PRINT:RETURN
2500 REM *                             *
2510 REM *      MISSAO CUMPRIDA        *
2520 REM *                             *
3000 TEXT:HOME:VTAB 5:HTAB 16:PRINT "PARABENS !!!"
3010 PRINT:PRINT "VOCE CONCLUIU SUA MISSAO EM ";T;" SEGUNDOS"
3030 VTAB 20:INPUT "QUER JOGAR NOVAMENTE?";Y$
3040 IF LEFT$(Y$,1) = "S" THEN RUN
9990 NORMAL
9999 DATA1,2,4,0,5,3,1,2,0,4,3,5,1,2,3,5,4,0,1,2,5,3,0,4

