Herramientas de usuario

Herramientas del sitio


es:labyrinthe_infernal

¡Esta es una revisión vieja del documento!


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

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

labyrinthe_01.jpg labyrinthe_02.jpg labyrinthe_03.jpg labyrinthe_04.jpg labyrinthe_05.jpg

Descarga

es/labyrinthe_infernal.1657608065.txt.gz · Última modificación: 2022/07/12 09:41 por jevicac