Herramientas de usuario

Herramientas del sitio


es:kingdom_of_craal

KINGDOM OF CRAAL

Ficha

Autor Mike Noels
Computadora Amstrad PCW 8256 / 8512 / 9512
Año 1987
Género Conversacional
Controles Teclado
Lenguajes Inglés
Estado Preservado

Capturas

Descripción

Muy lejos, más allá de las Montañas de Hielo, se encuentra el extraño y maravilloso Reino de Craal con su magnífico palacio y su bosque encantado.

Es una tierra pacífica, gobernada durante muchos años felices por el rey Meek, respetado por la mayoría de sus súbditos.

Sin embargo, había un personaje que no era parte de este abrumadora admiración: Vadham, el mago malvado.

Hace muchos años, fue desterrado a las mazmorras del castillo por intentar robar la daga chapada en oro del rey.

En su tiempo libre cuando no estaba mezclando hechizos o jugando con pócimas, convertía la mazmorra en un laberinto de desesperación, donde solo los valientes tenían el coraje de entrar.

Naciste en Craal el guapo hijo de un zapatero y hace muchos años decidiste buscar fortuna en tierras lejanas.

Regresaste muchas veces a lo largo de los años para visitar a tus ancianos padres y pasar en ocasiones un tiempo feliz en compañía de la hija del rey, Andrea.

Por desgracia, en esta última visita encontraste al rey muerto y el palacio alborotado.

El mago había aprovechado una oportunidad enviada por el cielo y, cuando el rey abrió la puerta de las mazmorras para dejar salir al Moggie del castillo, agarró su magnífica corona de oro y desapareció en su escondite en las profundidades.

Tú, con tu típica actitud juvenil, solo estabas interesado en tu futura esposa, Andrea. Los guardias de palacio, los lacayos, las cortesanas e incluso Ethel la limpiadora, sin embargo, no quedó impresionada con sus servicios para recuperar la corona.

Te arrojaron de cabeza por los escalones de la mazmorra con la advertencia de que si regresas con las manos vacías perderás todas tus queridas posesiones.

En esta seria aventura tienes a tu disposición seis comandos de una sola letra. Estos son n,s,e,w,l e i — para las cuatro direcciones de la brújula, mirar e inventariar respectivamente.

El programa también aceptará otros comandos de aventura estándar, como tomar, soltar, golpear y decir. Estas palabras son inteligentes, lo que significa que si tiene una llave y la quiere en una cerradura, todo lo que necesita decir es 'soltar la llave'. Entrará automáticamente en la cerradura.

Ahora no tiene mucho sentido que escribas una aventura y encuentres, como lo haces, todas las soluciones dentro de la lista. Por lo tanto, para ocultar las pistas, he escrito los mensajes importantes en código y todos están en las declaraciones de datos al final del programa.

No hay nada inteligente en lo que he hecho, y estoy seguro de que pronto te darás cuenta que todo el texto impreso ha sido desplazado por tres letras. La subrutina que comienza en la línea 530 lo decodifica todo y lo convierte en inglés sensato con el producto terminado.

Es imperativo que tenga mucho cuidado al ingresar estas líneas de datos si desea disfrutar del resultado de sus esfuerzos.

Listado

  • Listado - KC.BAS
10 REM           By Mike Noels
20 REM (c) Computing With The Amstrad
30 REM PCW
40 DEFINT a-z:PRINT CHR$(27);"E";CHR$(27)"H":GOTO 180 
50 DIM d(10,4)
60 h$=SPACE$(25):c$=h$:o$=h$:h$="":c$="":o$=""
70 hh$=SPACE$(255):oo$=h$:hh$="":oo$=""
80 FOR i=1 TO 10: FOR j=1 TO 4
90 READ d(i,j)
100 NEXT:NEXT
110 n=12:t=7:m=51
120 DIM j$(n):DIM o(n):DIM m$(m)
130 FOR i=1 TO n:READ hh$:READ cc$:GOSUB 530:j$(i)=oo$:hh$=cc$:GOSUB 530:o(i)=VAL(oo$):NEXT
140 FOR i=1 TO m:READ m$(i):NEXT
150 h$="":c$="":o$=""
160 b=-1:d=-1:e=-1:s=0:l=0:a=-1:g=0:ff=-1
170 r=2:x=3:GOTO 250
180 PRINT"On a visit to the palace of Craal, you find the place in uproar. The king is dead and his"
190 PRINT"crown stolen by a wicked wizard who's fled to his den in the palace dungeons. By paying"
200 PRINT"rather too much attention to the ex-king's daughter, you find yourself volunteered to"
210 PRINT"recover it.":PRINT
220 PRINT "You are thrown into the dungeons and told not to come back without the crown."
230 PRINT:PRINT "Here begins the adventure....":PRINT
240 GOTO 50
250 WHILE NOT g
260 IF r<>x THEN GOSUB 610
270 x=r:c=0:WHILE c=0:GOSUB 380:WEND
280 ON c GOSUB 810,850,880,930,1090,610,1000,960,1030,1180
290 WEND
300 PRINT
310 IF o(8)=1 THEN GOTO 330 ELSE m=31:GOSUB 2160
320 m=32:GOSUB 2160:PRINT:GOTO 350
330 m=29:GOSUB 2160:PRINT
340 m=30:GOSUB 2160:END
350 PRINT:m=51:GOSUB 2160
360 a$="":WHILE a$="":a$=INKEY$:WEND
370 a$=UPPER$(a$):IF a$="N" THEN END ELSE RUN
380 PRINT:PRINT"What now?"
390 c$="":WHILE c$="":INPUT "===>",c$:WEND:c$=LOWER$(c$)
400 IF LEN(c$)<>1 THEN 420
410 c=INSTR("nsewil",c$): IF c<>0 THEN RETURN ELSE PRINT"I don't recognise this single letter command - only n,s,e,w,i,l.":RETURN
420 sx=INSTR(c$," "): IF sx=0 THEN PRINT "I don't understand - put a space between command and object, please.":c=0:RETURN
430 verb$=LEFT$(c$,SX-1):o$=" "+MID$(c$,SX+1):WHILE LEFT$(o$,1)=" ":o$=RIGHT$(o$,LEN(o$)-1):WEND
440 c=INSTR("droptakesayhit",verb$)
450 IF c<>1 AND c<>5 AND c<>9 AND c<>12 THEN PRINT"I don't understand your command.":c=0:RETURN
460 IF c=1 THEN c=7 ELSE IF c=5 THEN c=8 ELSE IF c=12 THEN c=10 ELSE IF c=9 THEN RETURN 
470 z=0:i=1:m=0:WHILE m<>1 AND i<>n+1 
480 IF LEFT$(o$,4)=LEFT$(j$(i),4) THEN m=1
490 i=i+1
500 WEND
510 IF m=1 THEN z=i-1 ELSE PRINT"I don't understand the object you mean.":c=0:RETURN
520 RETURN
530 oo$=""
540 FOR jj=1 TO LEN(hh$)
550 rr=ASC(MID$(hh$,jj,1))-3
560 IF rr=38 OR rr=41 OR rr=34 THEN rr=rr+3
570 oo$=oo$+CHR$(rr) 
580 NEXT
590 RETURN
600 END
610 in=-1:m=r-1:GOSUB 2110
620 PRINT:PRINT:PRINT"You can see around you :-"
630 f=0
640 FOR i=1 TO n
650 IF o(i)<>r THEN 670 ELSE f=-1
660 GOSUB 1400 
670 NEXT
680 IF NOT f THEN PRINT"Nothing of interest."
690 PRINT
700 RETURN
710 DATA 0,0,0,0 
720 DATA 3,9,0,0 
730 DATA 0,2,4,0 
740 DATA 0,0,5,3
750 DATA 0,0,0,4
760 DATA 0,7,0,0
770 DATA 6,0,0,8
780 DATA 0,0,7,9
790 DATA 2,0,8,0
800 DATA 0,0,0,0
810 IF d(r,1)=0 THEN PRINT" Not allowed":PRINT:RETURN
820 IF r=7 AND a THEN m=33:GOSUB 2160:PRINT:RETURN
830 r=d(r,1)
840 RETURN
850 IF d(r,2)=0 THEN PRINT" Not allowed":PRINT:RETURN
860 r=d(r,2)
870 RETURN
880 IF d(r,3)=0 THEN PRINT" Not allowed":PRINT:RETURN
890 IF d(r,3)=8 AND ff THEN m=34:GOSUB 2160:ff=0
900 IF d(r,3)=7 AND o(7)=0 THEN o(7)=8:m=35:GOSUB 2160:PRINT
910 r=d(r,3)
920 RETURN
930 IF d(r,4)=0 THEN PRINT" Not allowed":PRINT:RETURN
940 r=d(r,4)
950 RETURN
960 IF o(z)=1 THEN PRINT"You already have it":RETURN
970 IF o(z)<>r THEN PRINT"It's not here":RETURN
980 IF z<t THEN PRINT"You can't take that" ELSE o(z)=1
990 RETURN
1000 IF o(z)=1 THEN o(z)=R ELSE PRINT "You don't have it":RETURN
1010 ON (r-1) GOSUB 1250,1270,1260,1310,1260,1260,1330,1260,1260
1020 RETURN
1030 h$="":FOR i=LEN(o$) TO 1 STEP -1 
1040 h$=h$+MID$(o$,i,1)
1050 NEXT
1060 IF o$=h$ THEN g=-1:m=50:GOSUB 2160:RETURN
1070 PRINT"Okay,"+CHR$(34)+o$+CHR$(34) 
1080 RETURN
1090 PRINT"Your inventory contains:-" 
1100 f=0
1110 FOR i=t TO n
1120 IF o(i)<>1 THEN 1140 ELSE f=-1 
1130 GOSUB 1400
1140 NEXT
1150 IF NOT f THEN PRINT"Nothing at all."
1160 PRINT
1170 RETURN
1180 IF o(z)<>r THEN PRINT"It wasn't here to hit":RETURN
1190 IF o(11)<>1 THEN m=36:GOTO 2160 
1200 IF z<>6 AND z<>3 THEN PRINT"This has no effect whatsoever."
1210 IF z=6 AND a THEN a=0:m=37:GOSUB 2160:PRINT:o(6)=0:RETURN
1220 IF z=3 AND s=0 THEN m=38:GOSUB 2160:s=-1:o(8)=2:RETURN
1230 IF z=3 AND s=-1 THEN m=39:GOTO 2160 
1240 RETURN
1250 IF z=8 AND e THEN m=40:GOSUB 2160:o(z)=0:e=NOT e:o(11)=1
1260 RETURN
1270 IF z=7 AND NOT b AND l THEN m=41:GOSUB 2160:PRINT:l=0
1280 IF z=9 THEN m=42:GOSUB 2160:o(z)=0:o(12)=3
1290 IF z=10 THEN d=0
1300 RETURN
1310 IF o(7)=5 AND o(12)=5 THEN m=43:GOSUB 2160:b=0:o(12)=0:o(7)=1
1320 RETURN
1330 IF z<>10 THEN 1370
1340 IF d THEN m=44:GOSUB 2160:GOTO 350 
1350 IF (NOT l) OR (o(7)<>8 AND o(7)<>1) THEN m=45:GOSUB 2160:GOTO 350
1360 IF o(2)=0 THEN m=46:GOSUB 2160:o(1)=0:o(2)=8:o(8)=8
1370 IF z=7 AND NOT b THEN l=-1:m=47:GOSUB 2160:PRINT
1380 IF z=9 OR z=12 THEN m=48:GOSUB 2160:PRINT:m=49:GOSU6 2160:GOTO 350
1390 RETURN
1400 IF i=1 THEN m=10:GOSUB 2110
1410 IF i=2 THEN m=11:GOSUB 2110
1420 IF i=3 AND NOT s THEN m=12:GOSUB 2110
1430 IF i=3 AND s THEN m=14:GOSUB 2110 
1440 IF i=4 THEN m=15:GOSUB 2110:m=16:GOSUB 2160:m=17:GOSUB 2160
1450 IF i=5 THEN m=18:GOSUB 2110
1460 IF i=6 THEN m=19:GOSUB 2110
1470 IF i=7 AND NOT b AND NOT l THEN m=21:GOSUB 2110
1480 IF i=7 AND NOT b AND l THEN m=22:GOSUB 2110
1490 IF i=7 AND b THEN m=23:GOSUB 2110 
1500 IF i=8 THEN m=20:GOSUB 2110
1510 IF i=9 THEN m=24:GOSUB 2110
1520 IF i=10 AND d THEN m=25:GOSUB 2110 
1530 IF i=10 AND NOT d THEN m=28:GOSUB 2110
1540 IF i=11 AND NOT a THEN m=26:GOSUB 2110
1550 IF i=11 AND a THEN crip$="a "+j$(i):PRINT crip$
1560 IF i=12 THEN m=27:GOSUB 2110
1570 PRINT
1580 RETURN
1590 DATA iluh,;,sloh#ri#dvkhv,3,yhqglqj#pdfklqh,5,pluuru,9,wuroo,8,gzdui,":",odps,3,frlq,3,sdufkphqw,7,fxuwdlq,<,vzrug,3,yrxfkhu,3
1600 DATA "d#udwkhu#vsduvh,#xqiulhqgo#urrp#zlwk#wkh#dssduhqwo#lqh{solfdeoh#vljq#########*Duprxu*#rq#wkh#zdoo1"
1610 DATA "d#ydvw#fdyhuq#zlwk#d#odujh#srro#ri#zdwhu1#D#sdwk#ohdgv#dorqj#lwv#hgjh1"
1620 DATA "dq#h{wuhpho#wljkw,#Hdvw#0#Zhvw#wxqqho1"
1630 DATA "d#vkrs1#Ryhu#wkh#frxqwhu#lv#dvljq=#Hehqhh}hu*v#Hqwhusulvhv1"
1640 DATA "d#vpdoo#fkdpehu,#lwv#zdoov#lulghvfhqw#zlwk#vsdunolqj#fuvwdov,#vdyh#rqh1"
1650 DATA "d#udwkhu#jorrp#fdyh,#uhplqlvfhqw#ri#rog#plqh#zrunlqjv1"
1660 DATA "zkdw#orrnv#olnh#d#khuplw*v#fhoo1"
1670 DATA "dq#rog#gluw#fkdpehu#wkdw#orrnv#wr#kdyh#ehhq#sloodjhg#orqj#djr1"
1680 DATA "wkh#zl}dug*v#fkdpehu1#Dv#qr#rqh#kdv#hyhu#vxuylyhg#wklv#h{shulhqfh,#wkhuh#lv#qr##h{wdqw#ghvfulswlrq1111"
1690 DATA "exuqlqj#eulooldqwo#lq#d#fruqhu1"
1700 DATA "qrz#txlwh#frro1"
1710 DATA "zlwk#d#qrwlfh#*qr#krw#prqh#ru#frxqwhuihlw#frlqv*1"
1720 DATA "zlwk#d#qrwlfh#*hpsw*#rq#lw1" 
1730 DATA "lq#elwv#rq#wkh#iorru1"
1740 DATA "hqjudyhg="
1750 DATA "*Vd#pluuru#zrug#wr#zl}dug#phhw,"
1760 DATA "Eh#vxuh#rx#kdyh#wkh#jrog#wr#juhhw1*"
1770 DATA "zlwk#d#exvlqhvv#olnh#dlu1"
1780 DATA "zhdulqj#gdun#jodvvhv1"
1790 DATA "zruwk#lwv#zhljkw#lq#jrog1" 
1800 DATA "qrw#hw#olw1"
1810 DATA "exuqlqj#euljkwo1"
1820 DATA "lq#d#udwkhu#edwwhuhg#frqglwlrq1"
1830 DATA "gu#dv#d#erqh#dqg#frpsohwho#eodqn1"
1840 DATA "lq#txlwh#jrrg#frqglwlrq#0#dqg#qrw#dw#doo#gdps1"
1850 DATA "fryhuhg#lq#eorrg1"
1860 DATA "uhdglqj=#H{fkdqjh#wklv#yrxfkhu#wrjhwkhu#zlwk#dq#rog#odps#dqg#rx*oo#jhw#d#qhz###odps#iuhh$"
1870 DATA ",#zulqjlqj#zhw1"
1880 DATA "Wkh#zl}dug*v#hhv#oljkw#xs1#Kh#wdnhv#rxu#frlq#wr#ex#klpvhoi#d#gulqn#dqg#################glvdsshduv1"
1890 DATA "\rx#sxw#rq#wkh#furzq#kh*v#ohiw#ehklqg#dqg#ilqg#rxuvhoi#edfn#lq#wkh#sdodfh,#Nlqj#ri#Fuddo,dqg#kdss#hyhu#diwhu1"
1900 DATA "Rk#ghdu,#rx*yh#jrw#qr#prqh#0#dqg#wkh#zl}dug#zdv#krslqj#rx*g#ex#klp#d#slqw#ru#wzr1"
1910 DATA "Qdwxudoo#kh#nloov#rx1"
1920 DATA "Wkh#gzdui#uhixvhv#wr#ohw#rx#sdvw1"
1930 DATA "D#zrug#wr#wkh#zlvh=#\rx*uh#jrlqj#wr#wkh#rqo#urrp#lq#wkh#sodfh#zlwkrxw#lwv#rzq#qdwxudo####skrvskruhvfhqfh1" 
1940 DATA "Dq#ludwh#gzdui,#lqixuldwhg#e#wkh#oljkw#rx*yh#ohw#lq,#wkurzv#klv#xqolw#odps#dw#rx1#Lw###odqgv,#lq#wkh#urrp#rx*yh#mxvw#ohiw,#vkdwwhuhg1"
1950 DATA "\rx#kdyhq*w#jrw#dqwklqj#ghfhqw#wr#klw#zlwk1#Jhw#d#vzrug1"
1960 DATA "Wkh#gzdui#idoov#ghdg,#wkhq#glvdsshduv#lq#iurqw#ri#rxu#hhv1"
1970 DATA "Wkh#yhqglqj#pdfklqh#vkdwwhuv1#D#frlq#gursv#rxw1"
1980 DATA "Judwxlwrxv#ylrohqfh#grhvq*w#khos#dqrqh1"
1990 DATA "Wkh#frlq#idoov#lqwr#wkh#vorw#lq#wkh#yhqglqj#pdfklqh1#\rx#duh#jlyhq#d#vzrug1#Wkdw*v#zk####lw*v#fdoohg#wkh#Duprxu$"
2000 DATA "Xqiruwxqdwho,#rxu#odps#jrhv#rxw1"
2010 DATA "Lqwhuhvwlqj$#Vrphwklqj*v#kdsshqlqj#wr#wkh#sdufkphqw1#Wdnh#d#orrn1111" 
2020 DATA "\rx*yh#jrw#d#qhz#odps$"
2030 DATA "Wkh#fxuwdlq#ioduhv#xs1#\rx#glh#lq#wkh#eod}h1"
2040 DATA "Wdnlqj#dgydqwdjh#ri#wkh#vxgghq#soxqjh#lqwr#gdunqhvv,#wkh#gzdui#iurp#ch{w#grru#frphv#lq#dqgsrolvkhv#rx#rii1" 
2050 DATA "Wkh#iluh#jrhv#rxw1#\rx#vhh#d#frlq#lq#lwv#dvkhv1"
2060 DATA "\rxu#odps#oljkwv1"
2070 DATA "Lw#exuvwv#lqwr#iodph$"
2080 DATA "\rx#vxgghqo#uhdolvh#wkdw#lw#zdv#ylwdo#wr#wkh#jdph1#Ryhufrph#zlwk#julhi,#rx#nloo#########rxuvhoi1"
2090 DATA "Wkh#pluuru#glvvroyhv#dqg#rx#ilqg#rxuvhoi#sxoohg#wkurxjk#wkh#jds#lw*v#ohiw#lqwr#wkh######zl}dug*v#urrp1" 
2100 DATA "Zkdw#d#vkdph#0#dqg#rx#zhuh#grlqj#vr#zhoo#wrr1#Gr#rx#zdqw#dqrwkhu#jrB#+|2Q)"
2110 hh$=m$(m):GOSUB 530
2120 crip$="You are in "+oo$:IF in THEN PRINT:PRINT crip$;
2130 IF NOT in THEN crip$="a "+j$(i)+" "+oo$:PRINT crip$
2140 in=0
2150 RETURN
2160 hh$=m$(m):GOSUB 530:PRINT:PRINT oo$ 
2170 RETURN
 in THEN crip$="a "+j$(i)+" "+oo$:PRINT crip$
2140 in=0
2150 RETURN
2160 hh$=m$(m):GOSUB 530:PRINT:PRINT oo$ 

Controles

      N = NORTE
      S = SUR
      E = ESTE
      W = OESTE
      L = OBSERVAR
      I = INVENTARIO
      TOMAR, SALTAR, GOLPEAR, DECIR...

Carga del programa

1.- Introducir el disco CP/M por la cara 2
2.- Escribir BASIC y esperar a que cargue
3.- Retirar el disco CP/M e introducir el disco que contiene el juego Kingdom of Craal
4.- Teclear run "KC" y pulsar la tecla "ENTER"

Extras

  • Listado del programa en revista de gran tirada de la época

kingdom_of_craal_01.jpg kingdom_of_craal_02.jpg

Descarga

es/kingdom_of_craal.txt · Última modificación: 2022/06/29 01:18 por jevicac