es:labyrinthe_infernal
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
es:labyrinthe_infernal [2022/07/12 09:22] – [Descarga] jevicac | es:labyrinthe_infernal [2022/07/12 10:35] (actual) – [Descripción] jevicac | ||
---|---|---|---|
Línea 18: | Línea 18: | ||
===== Descripción ===== | ===== Descripción ===== | ||
+ | ¿Qué puede ser más natural que querer salir de un laberinto a toda costa? Es esta aspiración muy legítima a la libertad la que lo empujará hacia adelante tan pronto como presione una tecla en su PCW. Pero, ¿cuál es el punto de golpearse la cabeza contra la pared? En lugar de precipitarse, | ||
+ | Pero, ¿de qué sirve la libertad si no tienes un centavo? No se trata de salir del laberinto con las manos vacías si quieres, como deseo, puedes dejar tu nombre para la posteridad (más exactamente en el archivo " | ||
+ | |||
+ | Ay, todo sería muy sencillo si no hubiera también en este laberinto un buen número de dragones codiciosos que, si te codeas con ellos, te quitarán 50.000 coronas o, si no eres solvente, no te llevarás una sola corona. ¡Cuidado también con las mazmorras, | ||
+ | |||
+ | ¿Cómo conseguir salir? ¿Cómo evitar al dragón? ¡Simplemente tomando una escalera oculta! Unos segundos de paciencia, y estarás en otro piso, con nuevos dragones, nuevas mazmorras, pero también nuevos tesoros de coronas y sobre todo otro laberinto de paredes y pasillos. Si no te gusta el piso, tendrás que pagar 50.000 coronas para subir o bajar a un nuevo piso. | ||
+ | |||
+ | Por último, pero no menos importante, correr como un loco por esos pasillos y chocar contra las paredes quema energía, y tus reservas de energía disminuyen a medida que pasan los segundos. Es absolutamente necesario llegar a la salida antes del agotamiento total si no quieres acumular monedas para nada... Afortunadamente, | ||
+ | |||
+ | Si desafortunadamente el destino decide que te encuentras encerrado entre cuatro paredes, sin posibilidad de salir, puedes golpearte la cabeza contra estas paredes hasta que te sobrevenga la muerte, pero por el bien de la humanidad, está planeada la habilidad de terminar con tu sufrimiento presionando tecla <f>. | ||
+ | |||
+ | En el programa " | ||
+ | |||
+ | __**Instalación de los programas**__ | ||
+ | |||
+ | **MATRIX2** | ||
+ | |||
+ | Ejecuta este programa y teclea el juego de caracteres para obtener los efectos gráficos. Guarda los bajo el nombre | ||
+ | " | ||
+ | |||
+ | **CHARFIC1** | ||
+ | |||
+ | Ejecuta este programa cuando hayas terminado de grabar el juego de caracteres gráficos completos y el mismo cargará el programa principal del juego " | ||
+ | |||
+ | Para ahorrar tiempo ya todos los programas y los caracteres gráficos se encuentran incluidos en los discos para su descarga y poder jugar directamente. | ||
===== Listado ===== | ===== Listado ===== | ||
- | * **__Listado - KC.BAS__** | + | * **__Listado |
< | < | ||
+ | 10 ' | ||
+ | 20 ' | ||
+ | 30 ' | ||
+ | 40 ' | ||
+ | 50 MEMORY & | ||
+ | 60 DATA 192, | ||
+ | 70 DEF FNcu$(x, | ||
+ | 80 PRINT nor$cls$; | ||
+ | 90 FOR i=1 TO 21: | ||
+ | 100 NEXT J,I:PRINT FNcu$(24, | ||
+ | 110 PRINT FNcu$(27, | ||
+ | 120 PRINT FNcu$(29, | ||
+ | 130 i$=INKEY$: | ||
+ | 140 IF i$=" | ||
+ | 150 FOR ap=1 TO 8: | ||
+ | 160 INPUT" | ||
+ | 170 POKE & | ||
+ | 180 PRINT " | ||
+ | 190 INPUT nom$: | ||
+ | 200 IF n3=2 THEN POKE & | ||
+ | 210 FOR n2=1 TO 8 | ||
+ | 220 IF n3=1 THEN GET #1:POKE & | ||
+ | 230 IF n3=2 THEN LSET z$=CHR$(PEEK(& | ||
+ | 240 NEXT | ||
+ | 250 IF n3=1 THEN CALL c | ||
+ | 260 NEXT: | ||
+ | 270 PRINT nor$:GOSUB 180:PRINT inv$" | ||
+ | 280 n3=1:GOSUB 190:RUN | ||
+ | 290 PRINT nor$:GOSUB 180:PRINT inv$" | ||
+ | 300 n3=2:GOSUB 190:RUN | ||
+ | </ | ||
+ | * **__Juego de caracteres para obtener los efectos gráficos (Caracteres 216 a 239)__** | ||
+ | |||
+ | < | ||
+ | Poción mágica | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Dragón | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Tesoro | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Escalera | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Personaje | ||
+ | |||
+ | | ||
+ | </ | ||
+ | |||
+ | * **__Listado 2- CHARFIC1.BAS__** | ||
+ | |||
+ | < | ||
+ | 10 ' | ||
+ | 20 ' | ||
+ | 30 ' | ||
+ | 40 ' | ||
+ | 50 esc$=CHR$(27): | ||
+ | 60 MEMORY & | ||
+ | 70 DATA 22, | ||
+ | 80 nom$=" | ||
+ | 90 FOR n=32 TO 255 | ||
+ | 100 IF i=1 THEN PRINT FNcu$(y, | ||
+ | 110 IF i=2 THEN PRINT FNcu$(y, | ||
+ | 120 i=i+1:IF i>2 THEN i=1 | ||
+ | 130 POKE & | ||
+ | </ | ||
+ | |||
+ | * **__Listado 3- LABYRINT.BAS__** | ||
+ | |||
+ | < | ||
+ | 10 ' | ||
+ | 20 '* LE LABYRINTHE INFERNAL | ||
+ | 30 ' | ||
+ | 40 ' | ||
+ | 50 ' | ||
+ | 60 ' | ||
+ | 70 MEMORY &HF605 | ||
+ | 80 IF FIND$(" | ||
+ | 90 OPEN" | ||
+ | 100 INPUT # | ||
+ | 110 CLOSE #1 | ||
+ | 120 ' **** initialisation des variables **** | ||
+ | 130 ' | ||
+ | 140 esc$=CHR$(27): | ||
+ | 150 DEF FNlocate$(x, | ||
+ | 160 DEF FNwi$(l, | ||
+ | 170 DEF FNinver$=esc$+" | ||
+ | 180 DEF FNfond$(f, | ||
+ | 190 hor$=CHR$(151)+STRING$(7, | ||
+ | 200 GOSUB 1680 ' | ||
+ | 208 PRINT FNlocate$(30, | ||
+ | 210 PRINT FNlocate$(31, | ||
+ | 220 r=r+1: | ||
+ | 230 PRINT FNfond$(63, | ||
+ | 240 FOR i=1 TO 500:NEXT | ||
+ | 250 b$=LOWER$(INKEY$): | ||
+ | 260 IF b$=" | ||
+ | 270 cal=10000: | ||
+ | 280 GOSUB 1680 | ||
+ | 290 '***** JEU ***** | ||
+ | 300 ' | ||
+ | 310 PRINT FNnorm$; | ||
+ | 320 a$=INKEY$: | ||
+ | 330 att=1 | ||
+ | 340 x$=CHR$(depx): | ||
+ | 350 x=ASC(x$): | ||
+ | 360 IF a$=" | ||
+ | 370 IF att<> | ||
+ | 380 att=0 | ||
+ | 390 d=d+(a$=" | ||
+ | 400 IF d>3 THEN LET d=0 | ||
+ | 410 IF d<0 THEN LET d=3 | ||
+ | 420 y=y+2*((d=2)-(d=0)) | ||
+ | 430 x=x+((d=3)-(d=1)) | ||
+ | 440 ON ca(x,y) GOSUB 590, | ||
+ | 450 IF pb=1 THEN LET pb=0:GOTO 540 ELSE IF pb=2 THEN LET pb=0:GOTO 310 | ||
+ | 460 PRINT FNlocate$(x, | ||
+ | 470 x$=CHR$(x)+x$ | ||
+ | 480 y$=CHR$(y)+y$ | ||
+ | 490 x=ASC(RIGHT$(x$, | ||
+ | 500 y=ASC(RIGHT$(y$, | ||
+ | 510 x$=LEFT$(x$, | ||
+ | 520 y$=LEFT$(y$, | ||
+ | 530 PRINT FNlocate$(x, | ||
+ | 540 cal=cal-1: | ||
+ | 550 GOTO 350 | ||
+ | 560 ' | ||
+ | 570 '***** rencontre d' | ||
+ | 580 ' | ||
+ | 590 '**** touche un mur **** | ||
+ | 600 cal=cal-100: | ||
+ | 610 IF cal<=0 THEN PRINT FNlocate$(29, | ||
+ | 620 d=d+1: | ||
+ | 630 '*** trouve trésor *** | ||
+ | 640 ' | ||
+ | 650 butin=butin+1 | ||
+ | 660 PRINT FNlocate$(29, | ||
+ | 670 PRINT FNlocate$(x, | ||
+ | 680 RETURN | ||
+ | 690 ' | ||
+ | 700 '*** oubliettes *** | ||
+ | 710 ' | ||
+ | 720 PRINT STRING$(3, | ||
+ | 730 PRINT FNlocate$(x, | ||
+ | 740 x1=x:y1=y | ||
+ | 750 x$=CHR$(x)+x$ | ||
+ | 760 y$=CHR$(y)+y$ | ||
+ | 770 x=ASC(RIGHT$(x$, | ||
+ | 780 y=ASC(RIGHT$(y$, | ||
+ | 790 x$=LEFT$(x$, | ||
+ | 800 y$=LEFT$(y$, | ||
+ | 810 PRINT FNlocate$(x, | ||
+ | 820 sortie=1+INT(RND*10): | ||
+ | 830 PRINT FNlocate$(29, | ||
+ | 840 rep$=LOWER$(INKEY$): | ||
+ | 850 IF rep$=" | ||
+ | 860 IF rep<> | ||
+ | 870 PRINT FNlocate$(29, | ||
+ | 880 nb=1:GOSUB 2040 | ||
+ | 890 PRINT FNlocate$(x1, | ||
+ | 900 depx=x1: | ||
+ | 910 RETURN | ||
+ | 920 PRINT FNlocate$(30, | ||
+ | 930 ' | ||
+ | 940 '*** dragons *** | ||
+ | 950 ' | ||
+ | 960 PRINT STRING$(3, | ||
+ | 970 x1=x:y1=y | ||
+ | 980 x$=CHR$(x)+x$ | ||
+ | 990 y$=CHR$(y)+y$ | ||
+ | 1000 x=ASC(RIGHT$(x$, | ||
+ | 1010 y=ASC(RIGHT$(y$, | ||
+ | 1020 x$=LEFT$(x$, | ||
+ | 1030 y$=LEFT$(y$, | ||
+ | 1040 PRINT FNlocate$(x, | ||
+ | 1050 IF butin<5 THEN 1130 | ||
+ | 1060 PRINT FNlocate$(29, | ||
+ | 1070 rep$=LOWER$(INKEY$): | ||
+ | 1080 IF rep$=" | ||
+ | 1090 nb=1:GOSUB 2120 | ||
+ | 1100 PRINT FNlocate$(x1, | ||
+ | 1110 depx=x1: | ||
+ | 1120 IF rep$<>" | ||
+ | 1130 PRINT FNlocate$(30, | ||
+ | 1140 ' **** arrivée **** | ||
+ | 1150 ' | ||
+ | 1160 PRINT STRING$(6, | ||
+ | 1170 x$=CHR$(x)+x$ | ||
+ | 1180 y$=CHR$(y)+y$ | ||
+ | 1190 x=ASC(RIGHT$(x$, | ||
+ | 1200 y=ASC(RIGHT$(y$, | ||
+ | 1210 x$=LEFT$(x$, | ||
+ | 1220 y$=LEFT$(y$, | ||
+ | 1230 PRINT FNlocate$(x, | ||
+ | 1240 PRINT FNlocate$(29, | ||
+ | 1250 rep$=INKEY$: | ||
+ | 1260 IF rep$=" | ||
+ | 1270 IF rep$<>" | ||
+ | 1280 IF 10*butin< | ||
+ | 1290 PRINT FNlocate$(30, | ||
+ | 1300 record=butin | ||
+ | 1310 OPEN " | ||
+ | 1320 PRINT # | ||
+ | 1330 CLOSE #1 | ||
+ | 1340 PRINT FNlocate$(29, | ||
+ | 1350 GOTO 2410 | ||
+ | 1360 '*** escaliers *** | ||
+ | 1370 ' | ||
+ | 1380 PRINT STRING$(3, | ||
+ | 1390 PRINT FNlocate$(x, | ||
+ | 1400 x1=x:y1=y | ||
+ | 1410 x$=CHR$(x)+x$ | ||
+ | 1420 y$=CHR$(y)+y$ | ||
+ | 1430 x=ASC(RIGHT$(x$, | ||
+ | 1440 y=ASC(RIGHT$(y$, | ||
+ | 1450 x$=LEFT$(x$, | ||
+ | 1460 y$=LEFT$(y$, | ||
+ | 1470 PRINT FNlocate$(x, | ||
+ | 1480 PRINT FNlocate$(29, | ||
+ | 1490 rep1$=LOWER$(INKEY$): | ||
+ | 1500 ERASE ca,posi | ||
+ | 1510 GOSUB 1680 | ||
+ | 1520 IF butin<5 THEN 1570 | ||
+ | 1530 IF rep1$=" | ||
+ | 1540 PRINT FNnorm$; | ||
+ | 1550 rep$=LOWER$(INKEY$): | ||
+ | 1560 IF rep$<>" | ||
+ | 1570 depx=x: | ||
+ | 1580 ca(x, | ||
+ | 1590 RETURN | ||
+ | 1600 '*** trouve potion *** | ||
+ | 1610 ' | ||
+ | 1620 PRINT STRING$(2, | ||
+ | 1630 cal=cal+1000 | ||
+ | 1640 PRINT FNlocate$(30, | ||
+ | 1650 PRINT FNlocate$(x, | ||
+ | 1660 RETURN | ||
+ | 1670 ' | ||
+ | 1680 '**** Formation du labyrinthe **** | ||
+ | 1690 ' | ||
+ | 1700 nb=5 | ||
+ | 1710 DIM posi(7) | ||
+ | 1720 DIM ca(28,90) | ||
+ | 1730 PRINT FNfond$(0, | ||
+ | 1735 IF page=0 THEN PRINT FNlocate$(0, | ||
+ | 1740 PRINT FNlocate$(0, | ||
+ | 1750 PRINT FNinver$; | ||
+ | 1760 FOR i=0 TO 90:LET ca(1, | ||
+ | 1770 FOR i=2 TO 27:PRINT FNlocate$(i, | ||
+ | 1780 FOR h=0 TO 8 | ||
+ | 1790 FOR i=1 TO 5 | ||
+ | 1800 posi(i)=INT(RND*100): | ||
+ | 1810 FOR j=1 TO i-1:IF posi(j)=posi(i) THEN LET j=i-1:GOTO 1800:ELSE NEXT j | ||
+ | 1820 FOR k=1 TO 2 | ||
+ | 1830 PRINT FNlocate$(3*h+k+1, | ||
+ | 1840 LET ca(3*h+k+1, | ||
+ | 1850 NEXT k | ||
+ | 1860 NEXT i | ||
+ | 1870 FOR i=1 TO 5 | ||
+ | 1880 posi(i)=INT(RND*10) | ||
+ | 1890 FOR j=1 TO i-1:IF posi(j)=posi(i) THEN LET j=i-1:GOTO 1880:ELSE NEXT j | ||
+ | 1900 IF h=8 THEN PRINT FNlocate$(27, | ||
+ | 1910 PRINT FNlocate$(3*h+4, | ||
+ | 1920 FOR k=0 TO 8:LET ca(3*h+4, | ||
+ | 1930 NEXT i,h | ||
+ | 1940 ' | ||
+ | 1950 '*** placement des trésors *** | ||
+ | 1960 ' | ||
+ | 1970 FOR h=1 TO 2*nb | ||
+ | 1980 y=6+8*INT(RND*10): | ||
+ | 1990 x=2+3*INT(RND*10): | ||
+ | 2000 IF ca(x, | ||
+ | 2010 PRINT FNnorm$; | ||
+ | 2020 NEXT | ||
+ | 2030 ' | ||
+ | 2040 '*** placement des oubliettes **** | ||
+ | 2050 FOR h=1 TO nb | ||
+ | 2060 y=6+8*INT(RND*10): | ||
+ | 2070 x=2+3*INT(RND*10): | ||
+ | 2080 IF ca(x, | ||
+ | 2090 PRINT FNinver$; | ||
+ | 2100 NEXT:IF nb=1 THEN RETURN | ||
+ | 2110 ' | ||
+ | 2120 '*** placement des dragons **** | ||
+ | 2130 FOR h=1 TO nb | ||
+ | 2140 y=6+8*INT(RND*10): | ||
+ | 2150 x=2+3*INT(RND*10): | ||
+ | 2160 IF ca(x, | ||
+ | 2170 PRINT FNnorm$; | ||
+ | 2180 NEXT:IF nb=1 THEN RETURN | ||
+ | 2190 ' | ||
+ | 2200 '*** placement de la potion **** | ||
+ | 2210 IF INT(RND*10) MOD 2=0 THEN 2270 | ||
+ | 2220 y=6+8*INT(RND*10): | ||
+ | 2230 x=2+3*INT(RND*10): | ||
+ | 2240 IF ca(x, | ||
+ | 2250 PRINT FNnorm$; | ||
+ | 2260 ' | ||
+ | 2270 '*** placement des escaliers **** | ||
+ | 2280 FOR h=1 TO nb | ||
+ | 2290 y=6+8*INT(RND*10): | ||
+ | 2300 x=2+3*INT(RND*10): | ||
+ | 2310 IF ca(x, | ||
+ | 2320 PRINT FNnorm$; | ||
+ | 2330 NEXT | ||
+ | 2340 ' | ||
+ | 2345 IF page=0 THEN LET page=1: | ||
+ | 2350 PRINT FNlocate$(29, | ||
+ | 2360 PRINT FNlocate$(30, | ||
+ | 2370 PRINT FNlocate$(30, | ||
+ | 2380 RETURN | ||
+ | 2390 ' | ||
+ | 2400 '*** FIN DE PARTIE *** | ||
+ | 2410 PRINT STRING$(20, | ||
+ | 2420 rep$=LOWER$(INKEY$): | ||
+ | 2430 ERASE ca:ERASE posi:GOTO 270 | ||
+ | 2440 PRINT cls$; | ||
+ | 2450 END | ||
+ | 2460 ' | ||
+ | 2470 ' | ||
+ | 2480 ' | ||
+ | 2490 ' | ||
+ | 3220 ' | ||
+ | 3230 ' | ||
+ | 3240 PRINT FNwi$(4, | ||
+ | 3250 PRINT: | ||
+ | 3260 PRINT "Cet argent, vous le trouverez dans des coffres comme celui-ci :" | ||
+ | 3270 PRINT TAB(35); | ||
+ | 3280 PRINT " | ||
+ | 3290 PRINT TAB(35); | ||
+ | 3300 PRINT "Si vous en rencont rez un, il ne vous laissera la vie sauve que si vous lui": | ||
+ | 3310 PRINT: | ||
+ | 3320 b$=INKEY$: | ||
+ | 3330 PRINT "Dans ce labyrinthe, il y a aussi des oubliettes comme celle-ci :": | ||
+ | 3335 PRINT:PRINT "Si vous y tombez, tout n'est peut-etre pas perdu ..." | ||
+ | 3340 PRINT" | ||
+ | 3350 PRINT:PRINT "A nesure que vous vous déplacez, vous vous fatiquez et perdez des calories.": | ||
+ | 3360 PRINT TAB(5);" | ||
+ | 3370 PRINT TAB(35); | ||
+ | 3380 PRINT "Si vous réussi ssez a l' | ||
+ | 3390 PRINT: | ||
+ | 3400 b$=INKEY$: | ||
+ | 3410 PRINT "En fin, ce labyrinthe comporte également des esca liers dérobés ": | ||
+ | 3420 PRINT "Vous pouvez emprunter ces escaliers pour vous rendre á un autre étage ou": | ||
+ | 3430 PRINT " | ||
+ | 3440 PRINT " | ||
+ | 3450 PRINT:PRINT " | ||
+ | 3460 PRINT:PRINT | ||
+ | 3470 PRINT: | ||
+ | 3480 b$=INKEY$: | ||
+ | 3490 PRINT "Pour vous déplacer, vous devez utiliser les touches ' | ||
+ | 3500 PRINT:PRINT TAB(5);" | ||
+ | 3510 PRINT TAB(5);" | ||
+ | 3520 PRINT: | ||
+ | 3530 PRINT:PRINT TAB(5);" | ||
+ | 3540 PRINT "vers le haut de l' | ||
+ | 3550 PRINT: | ||
+ | 3555 PRINT:PRINT "En cas de désespoir total, vous pouvez net tre fin a vos souffrances.": | ||
+ | 3560 PRINT:PRINT TAB(40); "Bonne chance pour Ie record !" | ||
+ | 3570 PRINT:PRINT TAB(40); " | ||
+ | 3580 b$=INKEY$: | ||
+ | 3590 PRINT FNwi$(0, | ||
+ | 3600 RETURN | ||
</ | </ | ||
===== Controles ===== | ===== Controles ===== | ||
- | | + | |
- | | + | |
F = ABANDONAR PARTIDA | F = ABANDONAR PARTIDA | ||
===== Carga del programa ===== | ===== Carga del programa ===== |
es/labyrinthe_infernal.1657606938.txt.gz · Última modificación: 2022/07/12 09:22 por jevicac