es:labyrinthe_infernal
¡Esta es una revisión vieja del documento!
Tabla de Contenidos
LABYRINTHE INFERNAL
Ficha
Autor | Christian Nesen |
---|---|
Computadora | Amstrad PCW 8256 / 8512 / 9512 |
Año | 1988 |
Género | Arcade |
Controles | Teclado |
Lenguajes | Francés |
Estado | Preservado |
Capturas
Descripción
Listado
- Listado 1- MATRIX2.BAS
10 '***************************************************** 20 '* programme N[ 1 - red{finition des caract}res * 30 '* MATRIX2 (Adaptation de MATRIX - voir Echo N[ 4) * 40 '***************************************************** 50 MEMORY &HBFFE:FOR n=&HC070 TO &HC098:READ d8:POKE n,d8:NEXT:DATA 243,62,129,211,241,62,130,211,242,175,95,103,22,184,58,153,192,111,41,41,41,25,17,154 60 DATA 192,235,1,8,0,237,176,62,133,211,241,62,134,211,242,251,201 70 DEF FNcu$(x,y)=CHR$(27)+"Y"+CHR$(32+x)+CHR$(32+y):inv$=CHR$(27)+"p":nor$=CHR$(27)+"q":cls$=CHR$(27)+"H"+CHR$(27)+"E" 80 PRINT nor$cls$;CHR$(27);"q":n=32:x=0 90 FOR i=1 TO 21:x=x+1:FOR j=70 TO 82:PRINT FNcu$(x,j)CHR$(n);:n=n+1:IF n=256 THEN I=99:J=99 100 NEXT J,I:PRINT FNcu$(24,0)CHR$(7)"Appuyez sur RETURN avant de taper les valeurs de chaque nouveau caract}re" 110 PRINT FNcu$(27,0)CHR$(7)"Touche -S- pour sauvegarder le fichier de caract}res red{finis" 120 PRINT FNcu$(29,0)CHR$(7)"Touche -C- pour recharger un fichier":PRINT FNcu$(0,0) 130 i$=INKEY$:IF i$="" THEN 130 ELSE i$=UPPER$(i$):PRINT FNcu$(0,0)CHR$(7):IF i$="C" THEN 270 140 IF i$="S" THEN 290 150 FOR ap=1 TO 8:points(ap)=0:PRINT CHR$(7):INPUT datbin(ap):points(ap)=points(ap)+datbin(ap):NEXT 160 INPUT"num{ro du caract}re red{fini et pressez RETURN ",n:IF N<32 OR n>255 THEN GOTO 160 170 POKE &HC099,n:FOR output=1 TO 8:POKE &HC099+output,(points(output)):NEXT:c=&HC070:CALL c:RUN 180 PRINT "entrez: drive A ou B:nom.extension ";:RETURN 190 INPUT nom$:PRINT"patientez...":OPEN "R",1,nom$,1:FIELD #1,1 AS z$:c=&HC070:FOR n=32 TO 255:POKE &HC099,n 200 IF n3=2 THEN POKE &HC089,0:CALL c:POKE &HC089,&HEB 210 FOR n2=1 TO 8 220 IF n3=1 THEN GET #1:POKE &HC099+n2,ASC(z$) 230 IF n3=2 THEN LSET z$=CHR$(PEEK(&HC099+n2)):PUT #1 240 NEXT 250 IF n3=1 THEN CALL c 260 NEXT:CLOSE:RETURN 270 PRINT nor$:GOSUB 180:PRINT inv$"charge "; 280 n3=1:GOSUB 190:RUN 290 PRINT nor$:GOSUB 180:PRINT inv$"sauve "; 300 n3=2:GOSUB 190:RUN
- Juego de caracteres
Poción mágica 216 0 0 63 15 15 15 15 7 217 0 0 255 255 255 255 255 255 218 0 0 184 230 198 134 134 216 219 15 31 31 15 7 3 1 0 220 255 255 255 255 255 255 255 0 221 224 240 240 240 224 192 128 0 Dragón 222 2 3 7 13 24 48 48 48 223 32 224 160 240 192 0 0 0 224 0 0 0 0 0 0 0 0 225 48 48 48 24 12 7 3 0 226 0 28 62 51 97 192 128 0 227 0 0 4 12 8 248 112 0 Tesoro 228 0 0 31 112 224 192 255 192 229 0 0 255 0 1 3 255 1 230 0 0 224 192 128 0 0 128 231 224 240 255 122 63 26 15 0 232 0 0 255 170 255 170 255 0 233 192 96 224 160 224 160 224 0 Escalera 234 0 0 0 0 1 1 15 15 235 7 7 63 63 255 255 255 255 236 0 0 3 3 31 31 25 5255 237 127 127 255 255 255 255 255 255 238 255 255 255 255 255 255 255 255 Personaje 239 60 60 24 126 219 60 102 195
- Listado 2- CHARFIC1.BAS
10 '********************************************** 20 '* programme N[ 2 * 30 '* @ sauver sous le nom "CHARFIC1.BAS" * 40 '********************************************** 50 esc$=CHR$(27):cls$=esc$+"E"+esc$+"H":DEF FNcu$(x,y)=esc$+"Y"+CHR$(32+x)+CHR$(32+y):PRINT cls$esc$+"f"+esc$+"0" 60 MEMORY &HBFFE:FOR n=&HC070 TO &HC098:READ d8:POKE n,d8:NEXT:DATA 243,62,129,211,241,62,130,211,242,175,95,103 70 DATA 22,184,58,153,192,111,41,41,41,25,17,154,192,235,1,8,0,237,176,62,133,211,241,62,134,211,242,251,201 80 nom$="m:fichier1.def":OPEN "R",1,nom$,1:FIELD #1,1 AS z$:c=&HC070:i=0:x=39:y=16:PRINT FNcu$(14,30)"chargement fichier 1 en cours" 90 FOR n=32 TO 255 100 IF i=1 THEN PRINT FNcu$(y,x)ESC$"p patientez ! " 110 IF i=2 THEN PRINT FNcu$(y,x)ESC$"q patientez ! " 120 i=i+1:IF i>2 THEN i=1 130 POKE &HC099,n:FOR n2=1 TO 8:GET #1:POKE &HC099+n2,ASC(z$):NEXT:CALL c:NEXT:CLOSE:RUN "m:labyrint.bas"
- Listado 3- LABYRINT.BAS
10 '******************************************************* 20 '* LE LABYRINTHE INFERNAL <c> Christian NESEN - 1988 * 30 '******************************************************* 40 ' 50 ' 60 ' 70 MEMORY &HF605 80 IF FIND$("record1.lab")="" THEN 120 90 OPEN"I",#1,"record1,lab" 100 INPUT #1,record,rec$ 110 CLOSE #1 120 ' **** initialisation des variables **** 130 ' 140 esc$=CHR$(27):cls$=esc$+"E"+esc$+"H" 150 DEF FNlocate$(x,y)=esc$+"Y"+CHR$(32+x)+CHR$(32+y) 160 DEF FNwi$(l,c,h,w)=esc$+"X"+CHR$(32+l)+CHR$(32+c)+CHR$(31+h)+CHR$(31+w) 170 DEF FNinver$=esc$+"p":DEF FNnorm$=esc$+"q" 180 DEF FNfond$(f,p)=esc$+"c"+CHR$(c)+esc$+"b"+CHR$(p) 190 hor$=CHR$(151)+STRING$(7,CHR$(154))+CHR$(157):char$=CHR$(239) 200 GOSUB 1680 '(vers -la- formation du labyrinthe pour la page titre) 208 PRINT FNlocate$(30,33);"LE LABYRINTHE INFERNAL":FOR i=1 TO 1000:NEXT 210 PRINT FNlocate$(31,0);"Appuyez sur une touche"; 220 r=r+1:b$=INKEY$:IF b$="" THEN 220 ELSE RANDOMIZE r:PRINT FNlocate$(30,0);esc$;"M"; 230 PRINT FNfond$(63,0);FNlocate$(10,25);FNinver$;" Voulez-vous des explications ? O/N ";FNnorm$ 240 FOR i=1 TO 500:NEXT 250 b$=LOWER$(INKEY$):IF b$<>"o" AND b$<>"n" THEN PRINT FNlocate$(10,25);" ":FOR i=1 TO 500:NEXT:GOTO 230 260 IF b$="o" THEN GOSUB 3230 'vers les explications 270 cal=10000:butin=0:d=3:depx=25:depy=2 280 GOSUB 1680 290 '***** JEU ***** 300 ' 310 PRINT FNnorm$;FNlocate$(depx,depy);char$:FOR i=1 TO 500:NEXT 320 a$=INKEY$:IF a$="" THEN PRINT FNlocate$(depx,depy);CHR$(32):FOR i=1 TO 500:NEXT:GOTO 310 330 att=1 340 x$=CHR$(depx):y$=CHR$(depy) 350 x=ASC(x$):y=ASC(y$) 360 IF a$="f" THEN PRINT FNlocate$(30,1);"Vous avez tout perdu ! Voulez-vous une autre chance ?";esc$;"K":GOTO 2410 370 IF att<>1 THEN PRINT FNlocate$(29,30);esc$;"K":a$=INKEY$ 380 att=0 390 d=d+(a$="w")-(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,630,700,940,1140,1360,1600 450 IF pb=1 THEN LET pb=0:GOTO 540 ELSE IF pb=2 THEN LET pb=0:GOTO 310 460 PRINT FNlocate$(x,y);char$ 470 x$=CHR$(x)+x$ 480 y$=CHR$(y)+y$ 490 x=ASC(RIGHT$(x$,1)) 500 y=ASC(RIGHT$(y$,1)) 510 x$=LEFT$(x$,LEN(x$)-1) 520 y$=LEFT$(y$,LEN(y$)-1) 530 PRINT FNlocate$(x,y);CHR$(32) 540 cal=cal-1:PRINT FNlocate$(30,13);cal:FOR i=1 TO 50:NEXT 550 GOTO 350 560 ' 570 '***** rencontre d'obstacles ***** 580 ' 590 '**** touche un mur **** 600 cal=cal-100:PRINT FNlocate$(30,2);CHR$(7);"Calories :";cal 610 IF cal<=0 THEN PRINT FNlocate$(29,1)"Vous etes a bout de forces ! Voulez vous une autre chance ?";esc$;"K":GOTO 2410 620 d=d+1:pb=1:RETURN 630 '*** trouve trésor *** 640 ' 650 butin=butin+1 660 PRINT FNlocate$(29,2);"Butin :";10*butin;"000 écus";STRING$(2,CHR$(7)) 670 PRINT FNlocate$(x,y-1);STRING$(3,CHR$(32)):ca(x,y)=0:IF ca(x+1,y)=2 THEN LET ca(x+1,y)=0:PRINT FNlocate$(x+1,y-1);STRING$(3,CHR$(32)) ELSE LET ca(x-1,y)=0:PRINT FNlocate$(x-1,y-1);STRING$(3,CHR$(32)) 680 RETURN 690 ' 700 '*** oubliettes *** 710 ' 720 PRINT STRING$(3,CHR$(7)) 730 PRINT FNlocate$(x,y);char$ 740 x1=x:y1=y 750 x$=CHR$(x)+x$ 760 y$=CHR$(y)+y$ 770 x=ASC(RIGHT$(x$,1)) 780 y=ASC(RIGHT$(y$,1)) 790 x$=LEFT$(x$,LEN(x$)-1) 800 y$=LEFT$(y$,LEN(y$)-1) 810 PRINT FNlocate$(x,y);CHR$(32) 820 sortie=1+INT(RND*10):IF sortie>4 THEN 820 830 PRINT FNlocate$(29,30);"Quel couloir choisissez vous ? Nord,Sud,Est ou Ouest ?" 840 rep$=LOWER$(INKEY$):IF rep$="" THEN 840 850 IF rep$="n" THEN LET rep=1 ELSE IF rep$="s" THEN LET rep=2 ELSE IF rep$="e" THEN LET rep=3 ELSE IF rep$="o" THEN LET rep=4 ELSE 840 860 IF rep<>sortie THEN 920 870 PRINT FNlocate$(29,30);"Bravo ! Reprenez votre route et faites attention!";esc$;"K" 880 nb=1:GOSUB 2040 890 PRINT FNlocate$(x1,y1-1);CHR$(32);char$;CHR$(32):ca(x1,y1)=0:IF ca(x1+1,y1)=3 THEN LET ca(x1+1,y1)=0:PRINT FNlocate$(x1+1,y1-1);STRING$(3,CHR$(32)) ELSE LET ca(x1-1,y1)=0:PRINT FNlocate$(x1-1,y1-1);STRING$(3,CHR$(32)) 900 depx=x1:depy=y1:d=3:att=1:pb=2:a$="" 910 RETURN 920 PRINT FNlocate$(30,1);"Vous avez tout perdu ! Voulez-vous une autre chance ?";esc$;"K":GOTO 2410 930 ' 940 '*** dragons *** 950 ' 960 PRINT STRING$(3,CHR$(7)) 970 x1=x:y1=y 980 x$=CHR$(x)+x$ 990 y$=CHR$(y)+y$ 1000 x=ASC(RIGHT$(x$,1)) 1010 y=ASC(RIGHT$(y$,1)) 1020 x$=LEFT$(x$,LEN(x$)-1) 1030 y$=LEFT$(y$,LEN(y$)-1) 1040 PRINT FNlocate$(x,y);CHR$(32) 1050 IF butin<5 THEN 1130 1060 PRINT FNlocate$(29,30);"Votre vie contre 50 000 écus ? D'accord ?" 1070 rep$=LOWER$(INKEY$):IF rep$="" THEN 1070 1080 IF rep$="n" THEN 1130 ELSE IF rep$<>"o" THEN 1070 ELSE LET butin=butin-5:PRINT FNlocate$(29,2);"Butin : ";10*butin;"000 écus." 1090 nb=1:GOSUB 2120 1100 PRINT FNlocate$(x1,y1-1);STRING$(3,CHR$(32)):ca(x1,y1)=0:IF ca(x1+1,y1)=4 THEN LET ca(x1+1,y1)=0:PRINT FNlocate$(x1+1,y1-1);STRING$(3,CHR$(32)) ELSE LET ca(x1-1,y1)=0:PRINT FN locate$(x1-1,y1-1);STRING$(3,CHR$(32)) 1110 depx=x1:depy=y1:d=3:a$="":att=1:pb=2:RETURN 1120 IF rep$<>"n" THEN 1070 1130 PRINT FNlocate$(30,1) ;"Vous avez tout perdu ! Voulez-vous une autre chance ?" ;esc$"K":GOTO 2410 1140 ' **** arrivée **** 1150 ' 1160 PRINT STRING$(6,CHR$(7)) 1170 x$=CHR$(x)+x$ 1180 y$=CHR$(y)+y$ 1190 x=ASC(RIGHT$(x$,1)) 1200 y=ASC(RIGHT$(y$,1)) 1210 x$=LEFT$(x$,LEN(x$)-1) 1220 y$=LEFT$(y$,LEN(y$)-1) 1230 PRINT FNlocate$(x,y);CHR$(32) 1240 PRINT FNlocate$(29,30);"Voulez-vous sortir ?";esc$;"K" 1250 rep$=INKEY$:IF rep$="" THEN 1250 1260 IF rep$="n" THEN depx=x:depy=y:d=3:att=1:pb=2:a$="":RETURN 1270 IF rep$<>"o" THEN 1250 1280 IF 10*butin<10*record THEN 1340 1290 PRINT FNlocate$(30,2)"Bravo, vous avez battu le record! ";esc$;"K";:INPUT "Quel est votre nom ";rec$ 1300 record=butin 1310 OPEN "O",#1,"record1.lab 1320 PRINT #1,record,rec$ 1330 CLOSE #1 1340 PRINT FNlocate$(29,30);"Votre score :";10*butin;"000 écus. On recommence ?";esc$;"K" 1350 GOTO 2410 1360 '*** escaliers *** 1370 ' 1380 PRINT STRING$(3,CHR$(7)) 1390 PRINT FNlocate$(x,y);char$ 1400 x1=x:y1=y 1410 x$=CHR$(x)+x$ 1420 y$=CHR$(y)+y$ 1430 x=ASC(RIGHT$(x$,1)) 1440 y=ASC(RIGHT$(y$,1)) 1450 x$=LEFT$(x$,LEN(x$)-1) 1460 y$=LEFT$(y$,LEN(y$)-1) 1470 PRINT FNlocate$(x,y);CHR$(32) 1480 PRINT FNlocate$(29,30);"On monte ou on descend ? (M/D)";esc$;"K" 1490 rep1$=LOWER$(INKEY$):IF rep1$<>"m" AND rep1$<>"d" THEN 1490 1500 ERASE ca,posi 1510 GOSUB 1680 1520 IF butin<5 THEN 1570 1530 IF rep1$="m" THEN PRINT FNlocate$(29,30);"50 000 écus pour monter d'un autre étage. (O/N)" ELSE PRINT FNlocate$(29,30);"50 000 écus pour descendre d'un autre étage. (O/N)" 1540 PRINT FNnorm$;FNlocate$(x,y);char$:FOR i=1 TO 500:NEXT 1550 rep$=LOWER$(INKEY$):IF rep$="" THEN PRINT FNlocate$(x,y);CHR$(32):FOR i=1 TO 500:NEXT:GOTO 1540 1560 IF rep$<>"o"AND rep$<>"n" THEN 1540 ELSE IF rep$="o" THEN LET butin=butin-5:GOTO 1500 1570 depx=x:depy=y:d=3:att=1:pb=2:a$="" 1580 ca(x,y)=0:PRINT FNlocate$(x,y-1);CHR$(32);FNlocate$(x,y+1);CHR$(32):IF ca(x+1,y)=6 THEN LET ca(x+1,y)=0:PRINT FNlocate$(x+1,y-1);STRING$(3,CHR$(32)) ELSE LET ca(x-1,y)=0:PRINT FNlocate$(x-1,y-1);STRING$(3,CHR$(32)) 1590 RETURN 1600 '*** trouve potion *** 1610 ' 1620 PRINT STRING$(2,CHR$(7)) 1630 cal=cal+1000 1640 PRINT FNlocate$(30,2);"Calories :";cal 1650 PRINT FNlocate$(x,y-1);STRING$(3,CHR$(32)):ca(x,y)=0:IF ca(x+1,y)=7 THEN LET ca(x+1,y)=0:PRINT FNlocate$(x+1,y-1);STRING$(3,CHR$(32)) ELSE LET ca(x-1,y)=0:PRINT FNlocate$(x-1,y-1);STRING$(3,CHR$(32)) 1660 RETURN 1670 ' 1680 '**** Formation du labyrinthe **** 1690 ' 1700 nb=5 1710 DIM posi(7) 1720 DIM ca(28,90) 1730 PRINT FNfond$(0,63);cls$;esc$+"f" 1735 IF page=0 THEN PRINT FNlocate$(0,2);" Christian NESEN presente ":FOR i=1 TO 1000:NEXT:GOTO 1750 1740 PRINT FNlocate$(0,2);"LE LABYRINTHE INFERNAL S C. NESEN 1988" 1750 PRINT FNinver$;FNlocate$(0,1);STRING$(90,CHR$(154)) 1760 FOR i=0 TO 90:LET ca(1,i)=1:NEXT 1770 FOR i=2 TO 27:PRINT FNlocate$(i,0);CHR$(149);FNlocate$(i,90);CHR$(149):LET ca(i,0)=1:ca(i,90)=5:NEXT 1780 FOR h=0 TO 8 1790 FOR i=1 TO 5 1800 posi(i)=INT(RND*100):IF posi(i)>10 THEN 1800 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,4+8*posi(i));CHR$(149) 1840 LET ca(3*h+k+1,4+8*posi(i))=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,0);STRING$(90,CHR$(154)):FOR k=0 TO 90:LET ca(28,k)=1:NEXT k:GOTO 1930 1910 PRINT FNlocate$(3*h+4,4+8*posi(i));hor$ 1920 FOR k=0 TO 8:LET ca(3*h+4,k+4+8*posi(i))=1:NEXT k 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):IF y>80 THEN 1980 1990 x=2+3*INT(RND*10):IF x>27 THEN 1990 2000 IF ca(x,y)<>0 THEN 1980 2010 PRINT FNnorm$;FNlocate$(x,y-1);CHR$(228);CHR$(229);CHR$(230);FNlocate$(x+1,y-1);CHR$(231);CHR$(232);CHR$(233):LET ca(x,y)=2:ca(x+1,y)=2 2020 NEXT 2030 ' 2040 '*** placement des oubliettes **** 2050 FOR h=1 TO nb 2060 y=6+8*INT(RND*10):IF y>80 THEN 2060 2070 x=2+3*INT(RND*10):IF x>27 THEN 2070 2080 IF ca(x,y)<>0 THEN 2060 2090 PRINT FNinver$;FNlocate$(x,y-1);" ";FNlocate$(x+1,y-1);" ";FNnorm$:LET ca(x,y)=3:ca(x+1,y)=3 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):IF y>80 THEN 2140 2150 x=2+3*INT(RND*10):IF x>27 THEN 2150 2160 IF ca(x,y)<>0 THEN 2140 2170 PRINT FNnorm$;FNlocate$(x,y-1);CHR$(222);CHR$(223);CHR$(224);FNlocate$(x+1,y-1);CHR$(225);CHR$(226);CHR$(227):LET ca(x,y)=4:ca(x+1,y)=4 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):IF y>80 THEN 2220 2230 x=2+3*INT(RND*10):IF x>27 THEN 2230 2240 IF ca(x,y)<>0 THEN 2220 2250 PRINT FNnorm$;FNlocate$(x,y-1);CHR$(216);CHR$(217);CHR$(218);FNlocate$(x+1,y-1);CHR$(219);CHR$(220);CHR$(221):LET ca(x,y)=7:ca(x+1,y)=7 2260 ' 2270 '*** placement des escaliers **** 2280 FOR h=1 TO nb 2290 y=6+8*INT(RND*10):IF y>80 THEN 2290 2300 x=2+3*INT(RND*10):IF x>27 THEN 2300 2310 IF ca(x,y)<>0 THEN 2290 2320 PRINT FNnorm$;FNlocate$(x,y-1);CHR$(32);CHR$(234);CHR$(235);FNlocate$(x+1,y-1);CHR$(236);CHR$(237);CHR$(238):LET ca(x,y)=6:ca(x+1,y)=6 2330 NEXT 2340 ' 2345 IF page=0 THEN LET page=1:ERASE ca,posi:GOTO 2380 '(titre) 2350 PRINT FNlocate$(29,2);"Butin :";10*butin;"000 écus." 2360 PRINT FNlocate$(30,2);"Calories :";cal 2370 PRINT FNlocate$(30,30);"Record :";10*record;"000 écus. ";"(";rec$;")";esc$;"K" 2380 RETURN 2390 ' 2400 '*** FIN DE PARTIE *** 2410 PRINT STRING$(20,CHR$(7)); 2420 rep$=LOWER$(INKEY$):IF rep$="" THEN 2420 ELSE IF rep$="o" THEN 2430 ELSE IF rep$="n" THEN 2440 ELSE 2420 2430 ERASE ca:ERASE posi:GOTO 270 2440 PRINT cls$;esc$;"e";FNfond$(63,0) 2450 END 2460 ' 2470 ' 2480 ' 2490 ' 3220 ' 3230 '****** EXPLICATIONS ******* 3240 PRINT FNwi$(4,4,23,81);cls$ 3250 PRINT:PRINT"Vous etes perdu dans un labyrinthe dont la sortie se trouve a droite de l'écran.":PRINT:PRINT "Au départ, vous vous trouvez dans la partie gauche, et votre but est de sortir":PRINT "en amassant un maximum d'argent.":PRINT 3260 PRINT "Cet argent, vous le trouverez dans des coffres comme celui-ci :" 3270 PRINT TAB(35);CHR$(228);CHR$(229);CHR$(230):PRINT TAB(35);CHR$(231);CHR$(232);CHR$(233) 3280 PRINT "Chaque coffre contient 10 000 écus.":PRINT:PRINT"Cependant,":PRINT TAB(5);"ce labyrinthe est peu accueillant. Il est peuplé de draqons :" 3290 PRINT TAB(35);CHR$(222);CHR$(223);CHR$(224):PRINT TAB(35);CHR$(225);CHR$(226);CHR$(227) 3300 PRINT "Si vous en rencont rez un, il ne vous laissera la vie sauve que si vous lui":PRINT"donnez la sonne de 50 000 écus.":PRINT "Si vous refusez ou si vous n'etes pas solvable, vous a vez perdu." 3310 PRINT:PRINT:PRINT TAB(40);"Appuyez suroune touche pour continuer"; 3320 b$=INKEY$:IF b$="" THEN 3320 ELSE PRINT cls$ 3330 PRINT "Dans ce labyrinthe, il y a aussi des oubliettes comme celle-ci :":PRINT:PRINT TAB(35);FNinver$;STRING$(3,CHR$(32));FNnorm$:PRINT TAB(35);FNinver$;STRING$(3,CHR$(32));FN norm$ 3335 PRINT:PRINT "Si vous y tombez, tout n'est peut-etre pas perdu ..." 3340 PRINT"Au fond de cette oubliette, il y a quatre couloi rs : un au nord, un au sud,":PRINT "un a l'est et le dernier á l'ouest. Un seul de ces couloirs nene á la liberté.":PRINT TAB(5);"Si vous le trouvez, vous pouvez poursuivre votre route. " 3350 PRINT:PRINT "A nesure que vous vous déplacez, vous vous fatiquez et perdez des calories.":PRINT "De plus chaque fois que vous heurtez un mur, vous perdez 100 calories." 3360 PRINT TAB(5);"Si vous etes a bout de forces avant de ga qner La sortie, vous avez perdu.":PRINT "Heureusement, il se peut que dans le labyrinthe il y ait de la potion magique." 3370 PRINT TAB(35);CHR$(216);CHR$(217);CHR$(218):PRINT TAB(35);CHR$(219);CHR$(220);CHR$(221) 3380 PRINT "Si vous réussi ssez a l'atteindre, vous pourrez refaire des réserves d'énergie et":PRINT "poursuivre votre route." 3390 PRINT:PRINT:PRINT TAB(40);"Appuyez sur une touche pour continuer"; 3400 b$=INKEY$:IF b$="" THEN 3400 ELSE PRINT cls$ 3410 PRINT "En fin, ce labyrinthe comporte également des esca liers dérobés ":PRINT:PRINT TAB(35);CHR$(32);CHR$(234);CHR$(235):PRINT TAB(35);CHR$(236);CHR$(237);CHR$(238):PRINT 3420 PRINT "Vous pouvez emprunter ces escaliers pour vous rendre á un autre étage ou":PRINT"vous découvrirez de nouveaux dragons et oubliettes, mais aussi des coffres" 3430 PRINT "d' écus, et peut et re de la pot i on naqi que ...":PRINT 3440 PRINT "Lorsque vous ar ri vez a un autre étage, vous pouv ez y rester, ou, moyennant la":PRINT"sonne de 50 000 écus, continuer a monter ou a descendre vers un étage plus":PRINT"accueillant." 3450 PRINT:PRINT "Lorsque vous atteignez La limi te droite du labyrinthe, vous pouvez soit sortir":PRINT"si vous etes satisfait de votre score, soit rester et continuer." 3460 PRINT:PRINT 3470 PRINT:PRINT:PRINT TAB(40);"Appuyez sur une touche pour continuer"; 3480 b$=INKEY$:IF b$="" THEN 3480 ELSE PRINT cls$ 3490 PRINT "Pour vous déplacer, vous devez utiliser les touches 'w' et '$' " 3500 PRINT:PRINT TAB(5);"Si vous appuyez sur 'w', vous tour nez á gauche." 3510 PRINT TAB(5);"Si vous appuyez sur '$', vous tournez a droite. " 3520 PRINT:PRINT"ATTENTION droite et qauche s' entendent par rapport á la trajectoire suivie,":PRINT "et non par rapport a l'écran ! " 3530 PRINT:PRINT TAB(5);"Pourocommencer, ains i qu'apres t ou t incident, (dragon, oubliette, etc.), si":PRINT"vous appuye z sur toute touche autre que 'w' ou '$' ,vous vous déplacerez" 3540 PRINT "vers le haut de l'écran. " 3550 PRINT:PRINT"Si vous heurt ez un mur, vous constaterez qu'étant un peu groggy, vous avez":PRINT "tendance á tituber, aíors raites attention !" 3555 PRINT:PRINT "En cas de désespoir total, vous pouvez net tre fin a vos souffrances.":PRINT "il vous suffit d'appuyer sur La touche 'f'." 3560 PRINT:PRINT TAB(40); "Bonne chance pour Ie record !" 3570 PRINT:PRINT TAB(40); "Appuyez sur une touche pour continuer"; 3580 b$=INKEY$:IF b$="" THEN 3580 3590 PRINT FNwi$(0,0,32,90) 3600 RETURN
Controles
Q = DERECHA E = IZQUIERDA F = ABANDONAR PARTIDA
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 Labyrinthe Infernal 4.- Teclear run "CHARFIC1" y pulsar la tecla "ENTER"
Extras
Descarga
- Labyrinthe Infernal en francés (juego en formato dsk, comprimido con zip)
- Labyrinthe Infernal en español (juego en formato dsk, comprimido con zip)
es/labyrinthe_infernal.1657608065.txt.gz · Última modificación: 2022/07/12 09:41 por jevicac