mirror of
https://github.com/antoinevignau/source.git
synced 2024-12-28 19:32:40 +00:00
730 lines
26 KiB
QBasic
730 lines
26 KiB
QBasic
2 REM LE MANOIR DU DOCTEUR GENIUS
|
|
3 REM COPYRIGHT LORICIELS 83 L.BENES
|
|
4 REM VERSION VG5000 FRED_72 2021
|
|
5 REM VERSION APPLE II BRUTAL DELUXE 2023
|
|
6 REM
|
|
10 REM POKE -34 BECOMES 254
|
|
11 REM POKE -1 BECOMES 255
|
|
12 D$=CHR$(4)
|
|
20 REM CLEAR 300,-16385
|
|
30 PRINT "DISKLOAD CODE"
|
|
35 REM CALL -16384: POKE&"47FD",0
|
|
40 GOSUB 7600
|
|
45 HOME : & INIT0,0: & TX3,0,0: PRINT: PRINTSPC(10)"VEUILLEZ PATIENTER"
|
|
50 GOSUB 8000: REM CHARGEMENT VARIABLES
|
|
51 GOSUB 7500
|
|
55 & N: & INIT0,0: & TX0,0,0
|
|
57 DIM P(12): P(11) = 0: P(12) = 0
|
|
60 SALLE = 1
|
|
70 FOR N = 1 TO 10
|
|
80 P(N) = 0: C(N) = 0
|
|
85 NEXT N
|
|
90 C(3) = 14: C(7) = 12: C(1) = 80: C(9) = 12
|
|
100 IF SALLE <> 14 AND SALLE <> 16 AND SALLE <> 17 AND SALLE <> 19 THENP(2) = 0
|
|
105 IF P(2) = 0 THEN 200
|
|
106 IF O(22) = SA AND P(7) = 1 THEN 200
|
|
107 IF O(05) = SA AND P(3) = 1 THEN 200
|
|
110 IF C(9) > 1 THEN C(9) = C(9) - 1
|
|
130 & C: & N
|
|
140 HTAB 1: VTAB 18: PRINT "Il fait noir comme dans un four!"
|
|
145 PRINT "Il faudrait peut etre allumer."
|
|
150 GOTO 500
|
|
|
|
200 REM DESCRIPTION SALLE
|
|
210 & N: & C: REM cadre+zone+dessin
|
|
215 DEST = SALLE
|
|
220 GOSUB 6900
|
|
230 & D
|
|
300 H = 0: N = 1
|
|
310 IF O(N) <> SALLE THEN 400
|
|
320 IF H = 1 THEN 350
|
|
330 & L: PRINT "Il y a dans la salle: ": & W,10
|
|
340 H = 1
|
|
350 & L: PRINT " ";O$(N);
|
|
360 & W,25
|
|
400 N = N + 1
|
|
410 IF N <= O THEN 310
|
|
415 & L: PRINT
|
|
|
|
500 REM ACCEPTATION COMMANDE
|
|
510 T = 1: Y$(1) = "": Y$(2) = "": N = 0
|
|
520 GOTO 1000
|
|
530 IF C(7) > 1 AND P(7) = 1 THEN C(7) = C(7) - 1
|
|
540 IF C(3) > 1 AND P(3) = 1 THEN C(3) = C(3) - 1
|
|
545 IF C(4) > 1 AND P(4) = 1 THEN C(4) = C(4) - 1
|
|
547 IF C(5) > 1 THEN C(5) = C(5) - 1
|
|
550 X$ = "": INPUT "Que faites vous ";X$
|
|
560 & N: PRINT ">";X$
|
|
570 GOSUB 6000
|
|
580 & L: IF MO(1) = 0 THEN PRINT "Je ne comprends pas...": & W,50: GOTO 500
|
|
|
|
900 REM CONTROLE Mvt
|
|
905 & I,SALLE
|
|
910 IF PEEK(-4) = 0 THEN 980
|
|
920 SALLE = PEEK(-4): GOTO 100
|
|
980 T = 0
|
|
990 A1 = 0
|
|
|
|
1000 REM CONTROLE
|
|
1010 NL = 0
|
|
1100 NL = NL + 1
|
|
1110 IF T = 0 THEN 1150
|
|
1120 E$ = C$(NL)
|
|
1130 GOTO 1400
|
|
1150 & A: NL = PEEK(-33)
|
|
1151 IF PEEK(-32) = 0 THEN 1159
|
|
1152 AD = -32: E$ = ""
|
|
1153 IF PEEK(AD) = 255 THEN 1400
|
|
1154 E$ = E$ + CHR$(PEEK(AD)): AD = AD + 1
|
|
1155 GOTO 1153
|
|
1159 PY = 23: CO = 12
|
|
1160 IF A1 = 1 THEN 500
|
|
1170 & L: PRINT "Impossible ";
|
|
1180 IF MO(1) < 10 THEN PRINT "de prendre ce chemin";
|
|
|
|
1190 PRINT "!": & W,100: GOTO 100
|
|
|
|
1400 REM CONDITIONS
|
|
1410 E = 1
|
|
1420 IF MID$(E$,E,1) = "." THEN 1700
|
|
1430 LI = ASC(MID$(E$,E,1))-65
|
|
1440 N = VAL(MID$(E$,E+1,2))
|
|
1450 ON (LI+1) GOSUB 1500,1510,1520,1530,1540,1550,1560,1570,1580
|
|
1460 IF OK = 0 THEN 1100
|
|
1470 E = E + 3: GOTO 1420
|
|
1500 IF N = SALLE THEN 1590
|
|
1505 GOTO 1585
|
|
1510 IF O(N) = -1 OR O(N) = SALLE THEN 1590
|
|
1515 GOTO 1585
|
|
1520 IF O(N) <> SALLE AND O(N) <> -1 THEN 1590
|
|
1525 GOTO 1585
|
|
1530 IF O(N) = -1 THEN 1590
|
|
1535 GOTO 1585
|
|
1540 IF P(N) = 1 THEN 1590
|
|
1545 GOTO 1585
|
|
1550 IF P(N) = 0 THEN 1590
|
|
1555 GOTO 1585
|
|
1560 IF C(N) = 1 THEN 1590
|
|
1565 GOTO 1585
|
|
1570 IF INT(RND(1)*99+1) < N THEN 1590
|
|
1575 GOTO 1585
|
|
1580 IF N <> SALLE THEN 1590
|
|
1585 OK = 0: RETURN
|
|
1590 OK = 1: RETURN
|
|
|
|
1700 REM ACTIONS
|
|
1705 E = E + 1: A1 = 1
|
|
1710 IF MID$(E$,E,1) = "." THEN 1100
|
|
1720 LI = ASC(MID$(E$,E,1))-65
|
|
1730 IF MID$(E$,E+1,1) <> "." THEN N = VAL(MID$(E$,E+1,2))
|
|
1740 BREAK = 0
|
|
1750 ON (LI+1) GOSUB 1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200,3300
|
|
1760 IF BREAK > 0 THEN ON BREAK GOTO 100,300,500,530,20000
|
|
1780 E = E + 3
|
|
1790 GOTO 1710
|
|
1800 G = 0: HH = 0
|
|
1810 G = G + 1
|
|
1820 IF O(G) = -1 THEN 1840
|
|
1830 IF G < O THEN 1810
|
|
1835 GOTO 1870
|
|
1840 & L: IF HH = 0 THEN PRINT "Vous detenez: "
|
|
1850 HH = 1
|
|
1860 & L: PRINT O$(G);: PRINT " ";: & W,30
|
|
1865 IF G < V THEN 1810
|
|
1870 & L: IF HH = 1 THEN PRINT ".": RETURN
|
|
1880 & L: PRINT "Vous ne detenez absolument rien!!!": RETURN
|
|
1900 IF S(1) < 5 THEN 1930
|
|
1910 & L: PRINT "Il parait evident que vous ne pouvez"
|
|
1915 & L: PRINT "porter tant de chose!!!"
|
|
1920 & W,200: BREAK = 1: RETURN
|
|
1930 IF O(N) <> -1 THEN 1960
|
|
1935 REM
|
|
1940 & L: PRINT "Vous l'avez deja,vous etes etourdis et"
|
|
1945 & L: PRINT "dans cette maison ce n'est pas tres"
|
|
1950 & L: PRINT "conseille...": GOTO 1920
|
|
1960 O(N) = -1: S(1) = S(1) + 1: RETURN
|
|
2000 IF O(N) = -1 THEN 2030
|
|
2010 & L: PRINT "Comment voulez vous poser ce que vous"
|
|
2015 & L: PRINT "n'avez pas..."
|
|
2020 GOTO 1920
|
|
2030 O(N) = SALLE: S(1) = S(1) - 1: RETURN
|
|
|
|
2100 REM
|
|
2105 DEST = N + 1: GOSUB 3900
|
|
2110 RETURN
|
|
2200 P(N) = 1: RETURN
|
|
2300 P(N) = 0: RETURN
|
|
|
|
2400 C(N) = VAL(MID$(A$(N),E+3,2)): E = E + 2: RETURN
|
|
|
|
2500 IF O(N) = -1 THEN S(1) = S(1) - 1
|
|
2510 O(N) = 0: RETURN
|
|
2600 SALLE = N: RETURN
|
|
2700 & L: PRINT "D'accord..."
|
|
2710 & W,20: BREAK=2: RETURN
|
|
2800 BREAK = 3
|
|
2810 RETURN
|
|
2900 BREAK = 4: RETURN
|
|
3000 BREAK = 1: RETURN
|
|
3100 BREAK = 5: RETURN
|
|
3200 O(N) = SALLE: RETURN
|
|
3300 X$=O$(N): O$(N)=O$(N+1): O$(N+1)=X$: RETURN
|
|
|
|
3900 IF DEST < 11 THEN ON DEST GOTO 4000,4010,4020,4030,4040,4050,4060,4070,4080,4090
|
|
3910 DEST = DEST - 10
|
|
3915 IF DEST < 11 THEN ON DEST GOTO 4100,4110,4120,4130,4140,4150,4160,4170,4180,4190
|
|
3920 DEST = DEST - 10
|
|
3925 IF DEST < 11 THEN ON DEST GOTO 4200,4210,4220,4230,4240,4250,4260,4270,4280,4290
|
|
3930 DEST = DEST - 10
|
|
3935 IF DEST < 11 THEN ON DEST GOTO 4300,4310,4320,4330,4340,4350,4360,4370,4380,4390
|
|
3940 DEST = DEST - 10
|
|
3945 IF DEST < 11 THEN ON DEST GOTO 4400,4410,4420,4430,4440,4450,4460,4470,4480,4490
|
|
3950 DEST = DEST - 10
|
|
3955 IF DEST < 11 THEN ON DEST GOTO 4500,4510,4520,4530,4540,4550,4560,4570,4580,4590
|
|
3960 DEST = DEST - 10
|
|
3965 IF DEST < 11 THEN ON DEST GOTO 4600,4610,4620,4630,4640
|
|
|
|
4000 & C: FOR N = 1 TO 20: & E: & W,4: NEXT N
|
|
4001 & N: PRINT "Vous avez garde la lampe allumee trop"
|
|
4002 & L: PRINT "longtemps, elle a explose!"
|
|
4005 & W,200: RETURN
|
|
4010 & C
|
|
4011 & N: PRINT "Vous avez oublie de fermer le robinet"
|
|
4012 & L: PRINT "vous mourez sous des tonnes d'eau!"
|
|
4015 & W,200: RETURN
|
|
4020 & C
|
|
4022 & N: PRINT "La porte vient de se refermer derriere"
|
|
4023 & L: PRINT "vous. Vous etes prisonnier..."
|
|
4025 & W,200: RETURN
|
|
4030 & C
|
|
4031 & N: PRINT "Vous avez trebuche dans l'escalier,vous"
|
|
4032 & L: PRINT "vous empallez sur le couteau!"
|
|
4035 & W,200: RETURN
|
|
4040 & C
|
|
4041 & N: PRINT "Vous renversez l'eau dans l'escalier,"
|
|
4042 & L: PRINT "ce qui provoque une decharge au niveau"
|
|
4043 & L: PRINT "de la prise electrique."
|
|
4045 & W,200: RETURN
|
|
4050 & C
|
|
4051 & N: PRINT "Vous etes sauf grace a la combinaison"
|
|
4052 & L: PRINT "que vous avez enfilee..!"
|
|
4055 & W,200: RETURN
|
|
4060 & L: PRINT "Vous mourez electrocute..."
|
|
4065 & W,200: RETURN
|
|
4070 & C: FORN=1TO20: & M,2,2,2,10: & P,3,7,4,80: & W,1: & E: & W,6: NEXTN
|
|
4071 & N: PRINT "La piece etait pleine de gaz explosif,"
|
|
4072 & L: PRINT "vous auriez du eteindre..."
|
|
4073 & W,200: PRINT "On ramassera vos morceaux un autre"
|
|
4074 & L: PRINT "jour..!"
|
|
4075 & W,200: RETURN
|
|
4080 & C
|
|
4081 & N: PRINT "Vous mourez empalle sur des lances"
|
|
4082 & L: PRINT "sorties du mur...!"
|
|
4085 & W,200: RETURN
|
|
4090 & L: PRINT "La porte ne s'ouvre pas de cette piece": & W,200: RETURN
|
|
4100 & C
|
|
4101 & L: PRINT "La lampe et le briquet refusent de"
|
|
4102 & L: PRINT "fonctionner dans cette piece!"
|
|
4109 & W,200: RETURN
|
|
4110 & C
|
|
4111 & L: PRINT "Vous tombez dans une trappe,vous vous"
|
|
4112 & L: PRINT "disloquez en arrivant au sol.."
|
|
4115 & W,200: RETURN
|
|
4120 & L: PRINT "Vous avez raison de passer,car ce"
|
|
4122 & L: PRINT "monstre n'etait qu'une projection"
|
|
4124 & L: PRINT "en 3 dimensions sur un ecran de fumee"
|
|
4125 & W,250: RETURN
|
|
4130 & L: PRINT "Vous avez raison,la curiosite est un"
|
|
4132 & L: PRINT "vilain defaut!!!"
|
|
4134 & W,250
|
|
4135 RUN 20040
|
|
4140 & L: PRINT "Vous avez raison d'attendre,mais cela"
|
|
4141 & L: PRINT "ne pourra pas durer eternellement.."
|
|
4142 & W,200: RETURN
|
|
4150 & L: PRINT "Vous avez de la chance car ce coffre"
|
|
4151 & L: PRINT "etait ouvert.": & W,100
|
|
4152 & L: PRINT "Un message a l'interieur dit: "
|
|
4153 & L: PRINTCHR$(34)+"Ne respectez pas les couleurs du code"
|
|
4154 & L: PRINT "de la route...?"+CHR$(34): & W,200
|
|
4156 & L: PRINT "Tiens le coffre se referme!": & W,150: RETURN
|
|
4160 & L: PRINT "Maintenant,vous avez une lampe pleine"
|
|
4162 & L: PRINT "de petrole."
|
|
4165 & W,200: RETURN
|
|
4170 & L: PRINT "Vous n'avez rien pour transporter le"
|
|
4171 & L: PRINT "petrole.": & W,200: RETURN
|
|
4180 FOR N = 1 TO 10: & E: & W,6: NEXTN
|
|
4181 & C: & N: PRINT "Le briquet que vous aviez laisse"
|
|
4182 & L: PRINT "allume vient d'exploser!"
|
|
4185 & L: & W,200: PRINT "Ca tue l'etourderie.....": & W,150: RETURN
|
|
4190 & C: & N: PRINT "A force de marcher en long et en large"
|
|
4191 & L: PRINT "dans cette maison, vous sombrez dans"
|
|
4194 & L: PRINT "un coma des plus mortel...
|
|
4195 & W,300: RETURN
|
|
4200 PRINT "L'eau coule...": RETURN
|
|
4210 & C: & N: PRINT "Vous avez les pieds trempes,et cela"
|
|
4211 & L: PRINT "vous rend tres malade..."
|
|
4215 & W,100: & L: PRINT "Vous mourez d'une triple pneumonie...!": & W,200: RETURN
|
|
4220 & L: PRINT "Le titre est: "
|
|
4225 & L: PRINTCHR$(34)+"La mort a la 1ere page."+CHR$(34): & W,200: RETURN
|
|
4230 & C: FOR N=1 TO 20: & E: NEXTN
|
|
4233 & N: PRINT "Le livre a explose lorsque vous l'avez"
|
|
4235 & L: PRINT "ouvert...": & W,200: RETURN
|
|
4240 & L: PRINT "Le papier indique: "+CHR$(34)+"Cherchez la clef."+CHR$(34)
|
|
4242 & W,200: RETURN
|
|
4250 & L: PRINT "La clef vous permettra de trouver le"
|
|
4252 & L: PRINT "code de la porte d'entree."
|
|
4255 & W,200: RETURN
|
|
4260 & L: PRINT "Il y a un clavier numerique permettant"
|
|
4261 & L: PRINT "d'entrer un code a côte de la porte.": & W,200: RETURN
|
|
4270 & L: PRINT "Pour faire quoi..?": & W,200: RETURN
|
|
4280 & L: PRINT "Il y a une odeur de gaz.": & W,200: RETURN
|
|
4290 & L: PRINT "Apparemment,il n'y a aucune odeur.": & W,200: RETURN
|
|
4300 & L: PRINT "C'est deja fait,espece de rigolo!": & W,200: RETURN
|
|
4310 & L: PRINT "Il faudrait peut etre du feu!": & W,200: RETURN
|
|
4320 & L: PRINT "La lampe ne contient pas de petrole!": & W,200: RETURN
|
|
4330 & L: PRINT "Vous ne l'avez pas!": & W,200: RETURN
|
|
4340 & L: PRINT "Le briquet est encore allume et il"
|
|
4342 & L: PRINT "eclaire la piece.": & W,200: RETURN
|
|
4350 FOR N = 1 TO 15: & E: & W,4: NEXT N
|
|
4355 & L: PRINT "La torche etait piegee,elle vous"
|
|
4356 & L: PRINT "a explose dans les mains.."
|
|
4357 & W,200: RETURN
|
|
4360 & L: PRINT "La lampe est encore allumee,et elle"
|
|
4362 & L: PRINT "vous eclaire.": & W,200: RETURN
|
|
4370 & L: PRINT "Un nain vient de vous lancer un"
|
|
4371 & L: PRINT "poignard en plein coeur.."
|
|
4375 & W,200: RETURN
|
|
4380 & L: PRINT "Un nain vient de se precipiter sur"
|
|
4385 & L: PRINT "vous, il s'empalle sur votre ciseau.": & W,200: RETURN
|
|
4390 & L: PRINT "Un nain vient de se precipiter sur"
|
|
4395 & L: PRINT "vous, il s'empalle sur votre couteau.": & W,200: RETURN
|
|
4400 & L: PRINT "Vous venez de renverser le pot.": & W,150: RETURN
|
|
4410 IF PEEK(255) = 1 THEN BREAK = 3: RETURN
|
|
4411 & C: & S,4,4,0: & P,0,1,1,5000
|
|
4412 & N: PRINT "La foudre vient de tomber sur la maison": & W,200
|
|
4413 & L: PRINT "La maison n'existe plus!": & W,100
|
|
4414 & L: PRINT "Vous non plus!": & W,100: & P,0,0,0,0: RETURN
|
|
4420 & C: & N: PRINT "A force de marcher dans le noir,vous"
|
|
4422 & L: PRINT "avez trebuche.": & W,100
|
|
4425 & L: PRINT "Vous mourez d'une fracture du crane...": & W,200: RETURN
|
|
4430 & L: PRINT "Vous ne pouvez pas travailler dans le"
|
|
4433 & L: PRINT "noir...": & W,200: RETURN
|
|
4440 & L: PRINT "La lumiere du briquet ne suffit pas"
|
|
4442 & L: PRINT "pour travailler...": & W,200: RETURN
|
|
4450 & L: PRINT "Impossible !": & W,100: RETURN
|
|
4460 & L: PRINT "Vous n'avez aucun outil...": & W,200: RETURN
|
|
4470 & L: PRINT "Le teleporteur est en panne,donc les"
|
|
4472 & L: PRINT "boutons ne fonctionnent pas."
|
|
4475 & W,400: RETURN
|
|
4480 FOR N = 1 TO 25: & E: & W,5: NEXT N
|
|
4484 & C: & N: PRINT "Le teleporteur vient d'exploser,"
|
|
4485 & L: PRINT "vous etes decompose..!": & W,200: RETURN
|
|
4490 & N: PRINT "Le teleporteur se met en marche"
|
|
4491 & L: PRINT "vous disparaissez...": & W,50
|
|
4492 & M,2,1,5,0: & P,2,1,3,1000
|
|
4493 & F
|
|
4494 & P,0,0,0,0
|
|
4495 FOR N = 500 TO 30 STEP -5
|
|
4497 & S,2,N,12: & P,2,0,0,100
|
|
4498 NEXT N
|
|
4499 & P,0,0,0,0: RETURN
|
|
4500 & C: & L: PRINT "Vous prenez du 30000 Volts dans les"
|
|
4502 & L: PRINT "doigts!": & W,200: RETURN
|
|
4510 & L: PRINT "Le placard est ferme a clef!": & W,200: RETURN
|
|
4520 & C: & N: PRINT "L'horrible monstre sorti du placard"
|
|
4522 & L: PRINT "vient de vous devorer!"
|
|
4525 & W,200: RETURN
|
|
4530 & L: PRINT "Il ne fallait pas fuir!": & W,200: RETURN
|
|
4540 & C: & L: PRINT "Vous avez raison d'utiliser le ciseau,"
|
|
4542 & L: PRINT "le monstre est mort!"
|
|
4545 & W,200: RETURN
|
|
4550 & D: & N: PRINT "A l'interieur du placard,le No "PL
|
|
4552 & L: PRINT "est inscrit": & W,200
|
|
4555 & L: PRINT "Le placard se referme.": & W,100: RETURN
|
|
4560 & C: FORN=1TO30: & E: & W,5: NEXTN
|
|
4562 & N: PRINT "le pistolet a explose!": & W,200
|
|
4565 RETURN
|
|
|
|
4570 IF SALLE = 2 THEN RETURN
|
|
4571 & L: PRINT "Impossible!": BREAK = 3: RETURN
|
|
4575 & C: FOR N = 1 TO 25: & E: & W,7: NEXTN
|
|
4576 & N: PRINT "le clavier numerique a explose!": & W,200: BREAK = 5: RETURN
|
|
4580 & N: PRINT "Le clavier numerique prend feu.": & W,200
|
|
4581 & L: IF O(24) <> -1 THEN 4586
|
|
4582 & L: PRINT "Heureusement,vous avez un pot plein"
|
|
4584 & L: PRINT "d'eau. Ce qui vous permet d'eteindre"
|
|
4585 & L: PRINT "ce feu.": & W,300: RETURN
|
|
4586 & L: PRINT "Malheureusement vous n'avez pas d'eau"
|
|
4587 & L: PRINT "pour l'eteindre.": & W,200
|
|
4588 GOTO 4575
|
|
|
|
4590 & N: INPUT"No DE CODE ";ZC
|
|
4595 IF ZC <> PL THEN 4575
|
|
4600 & W,100: & L: PRINT "Le code est exact...": & L: PRINT "La porte s'ouvre..."
|
|
4603 & W,150
|
|
4605 GOTO 11000
|
|
4610 & L: PRINT "A l'interieur du placard,il y a un mot"
|
|
4611 & L: PRINT "qui parle d'un teleporteur.": & W,200
|
|
4615 & L: PRINT "Tiens le placard se ferme tout seul...": & W,100: RETURN
|
|
4620 & L: PRINT "Avant de la poser par terre,il faudrait"
|
|
4621 & L: PRINT "peut etre l'enlever."
|
|
4625 & W,200: RETURN
|
|
4630 & C: & N: PRINT "Devant vous, il y a un horrible"
|
|
4631 & L: PRINT "monstre qui est sorti du placard."
|
|
4635 & W,200: RETURN
|
|
4640 & L: PRINT "Le placard etait piege,vous n'auriez"
|
|
4641 & L: PRINT "pas du l'ouvrir!"
|
|
4645 FOR N = 1 TO 30: & E: & W,7: NEXT N
|
|
4647 & W,200: RETURN
|
|
|
|
6000 REM ANALYSE DU MOT
|
|
6010 N = 0: GN = 0
|
|
6020 N = N + 1: IF MID$(X$,N,1) <> " " THEN 6040
|
|
6030 GOTO 6020
|
|
6040 GN = GN + 1: XX$ = MID$(X$,N+GN,1): IF XX$ = " " OR XX$ = "" OR GN = 20 THEN 6060
|
|
6050 GOTO 6040
|
|
6060 IF GN > 4 THEN GN = 4
|
|
6070 X$(1) = MID$(X$,N,GN)
|
|
6080 N = N + 1: XX$ = MID$(X$,N,1): IF XX$ = " " OR XX$ = "" THEN 6100
|
|
6090 GOTO 6080
|
|
6100 N = N + 1: IF MID$(X$,N,1) <> " " THEN 6115
|
|
6110 GOTO 6100
|
|
6115 GN = 0
|
|
6120 GN = GN + 1: XX$ = MID$(X$,N+GN,1): IF XX$ = " " OR XX$ = "" OR GN = 20 THEN 6140
|
|
6130 GOTO 6120
|
|
6140 IF GN > 4 THEN GN = 4
|
|
6150 X$(2) = MID$(X$,N,GN)
|
|
6160 & U,X$(1): & V,X$(2)
|
|
6170 MO(1) = PEEK(-3)
|
|
6180 MO(2) = PEEK(-2)
|
|
6190 RETURN
|
|
|
|
6900 REM Chargement image salle
|
|
6902 & C: & N
|
|
6905 IF DEST < 11 THEN ON DEST GOTO 7000,7010,7020,7030,7040,7050,7060,7070,7080,7090
|
|
6910 DEST = DEST - 10
|
|
6915 IF DEST < 11 THEN ON DEST GOTO 7100,7110,7120,7130,7140,7150,7160,7170,7180,7190
|
|
6920 DEST = DEST - 10
|
|
6925 ON DEST GOTO 7200,7210,7220,7230,7240
|
|
|
|
7000 PRINT "DISKLOAD IMG_01"
|
|
7005 PRINT "Vous etes devant le manoir du defunt"
|
|
7006 PRINTSPC(14)"Dr GENIUS"
|
|
7009 RETURN
|
|
7010 PRINT "DISKLOAD IMG_02"
|
|
7015 PRINT "Vous etes dans le hall d'entree."
|
|
7019 RETURN
|
|
7020 PRINT "DISKLOAD IMG_03"
|
|
7025 PRINT "Vous etes en bas de l'escalier menant"
|
|
7026 PRINT "au 2eme etage."
|
|
7029 RETURN
|
|
7030 PRINT "DISKLOAD IMG_04"
|
|
7035 PRINT "Vous etes dans la salle a manger."
|
|
7039 RETURN
|
|
7040 PRINT "DISKLOAD IMG_05"
|
|
7045 PRINT "Vous etes dans une bibliotheque sans"
|
|
7046 PRINT "livre...!"
|
|
7049 RETURN
|
|
7050 PRINT "DISKLOAD IMG_06"
|
|
7055 PRINT "Vous etes dans une buanderie."
|
|
7059 RETURN
|
|
7060 PRINT "DISKLOAD IMG_07"
|
|
7065 PRINT "Vous etes dans le salon."
|
|
7069 RETURN
|
|
7070 PRINT "DISKLOAD IMG_08"
|
|
7075 PRINT "Vous etes dans une chambre."
|
|
7079 RETURN
|
|
7080 PRINT "DISKLOAD IMG_09"
|
|
7085 PRINT "Vous etes dans un corridor."
|
|
7089 RETURN
|
|
7090 PRINT "DISKLOAD IMG_10"
|
|
7095 PRINT "Vous etes dans une salle d'attente."
|
|
7099 RETURN
|
|
7100 PRINT "DISKLOAD IMG_11"
|
|
7105 PRINT "Vous etes dans le vestibule."
|
|
7109 RETURN
|
|
7110 PRINT "DISKLOAD IMG_12"
|
|
7115 PRINT "Vous etes dans la chambre d'amis."
|
|
7119 RETURN
|
|
7120 PRINT "DISKLOAD IMG_13"
|
|
7125 PRINT "Vous etes dans une chambre."
|
|
7129 RETURN
|
|
7130 STOP
|
|
7140 PRINT "DISKLOAD IMG_14"
|
|
7145 PRINT "Vous etes dans une petite salle."
|
|
7149 RETURN
|
|
7150 PRINT "DISKLOAD IMG_15"
|
|
7155 PRINT "Vous etes dans le laboratoire du
|
|
7156 PRINT "Dr GENIUS."
|
|
7159 RETURN
|
|
7160 PRINT "DISKLOAD IMG_16"
|
|
7165 PRINT "Vous etes dans une petite piece vide."
|
|
7169 RETURN
|
|
7170 PRINT "DISKLOAD IMG_17"
|
|
7175 PRINT "Vous ne savez pas où vous etes."
|
|
7179 RETURN
|
|
7180 PRINT "DISKLOAD IMG_18"
|
|
7185 PRINT "Vous etes en haut de l'escalier."
|
|
7189 RETURN
|
|
7190 PRINT "DISKLOAD IMG_19"
|
|
7195 PRINT "Vous etes dans la salle bain."
|
|
7199 RETURN
|
|
7200 PRINT "DISKLOAD IMG_20"
|
|
7205 PRINT "Vous etes dans le living room."
|
|
7209 RETURN
|
|
7210 PRINT "DISKLOAD IMG_21"
|
|
7215 PRINT "Vous etes dans une piece enfumee...!"
|
|
7219 RETURN
|
|
7220 PRINT "DISKLOAD IMG_22"
|
|
7225 PRINT "Vous etes dans une grande piece."
|
|
7229 RETURN
|
|
7230 PRINT "DISKLOAD IMG_23"
|
|
7235 PRINT "Vous etes dans une piece de rangement."
|
|
7239 RETURN
|
|
7240 PRINT "DISKLOAD IMG_24"
|
|
7245 PRINT "Vous etes dans le dressing."
|
|
7249 RETURN
|
|
|
|
7500 & TX7,0,0: VTAB 23: PRINTSPC(8)"APPUYEZ SUR UNE TOUCHE"
|
|
7510 N = RND(1)
|
|
7511 IF PEEK(-16384)<128 THEN 7510
|
|
7512 POKE -16368,0
|
|
7515 RETURN
|
|
|
|
7600 REM CONFIG JEU
|
|
7602 & INIT0,0: & TX3,0,0
|
|
7605 POKE 254,0: POKE 255,0
|
|
7610 INPUT "Carte SON (O/N)";X$
|
|
7620 IF X$ = "O" THEN POKE 254,1: GOTO 7630
|
|
7625 IF X$ <> "N" THEN 7610
|
|
7630 INPUT "Foudre (O/N)";X$
|
|
7640 IF X$ = "O" THEN POKE 255,1: GOTO 7650
|
|
7645 IF X$ <> "N" THEN 7630
|
|
7650 RETURN
|
|
|
|
8000 REM CHARGEMENT VARIABLES
|
|
8001 RESTORE
|
|
8010 V = 70
|
|
8130 O = 25: DIMO(25)
|
|
8140 FOR N = 1 TO 25
|
|
8150 READ O(N)
|
|
8170 NEXT N
|
|
8180 DATA 06,05,05,08,08,00,00,11,11
|
|
8190 DATA 13,20,18,16,16,16,16,00,21
|
|
8200 DATA 00,22,25,12,00,25,00
|
|
|
|
8205 DIM O$(25)
|
|
8210 FOR N = 1 TO 25
|
|
8220 READ O$(N)
|
|
8240 NEXT N
|
|
8250 DATA UNE TORCHE ELECTRIQUE,UN ROBINET,UN CISEAU,UN TOURNEVIS
|
|
8260 DATA UNE LAMPE A PETROLE,UNE LAMPE PLEINE,UNE LAMPE ALLUMEE,UN COUTEAU
|
|
8270 DATA UN PAPIER,UN LIVRE,DU PETROLE DANS UN LAVABO BOUCHE
|
|
8280 DATA UNE CLEF,UN BOUTON ROUGE,UN BOUTON BLEU
|
|
8290 DATA UN BOUTON VERT,UN TELEPORTEUR,UN TELEPORTEUR REPARE
|
|
8300 DATA UNE COMBINAISON ARGENTEE,UNE COMBINAISON ENFILEE,UN MONSTRE A L'EST
|
|
8310 DATA UN PISTOLET,UN BRIQUET,UN BRIQUET ALLUME,UN POT,UN POT PLEIN D'EAU
|
|
|
|
8320 M = 25: DIM M$(25)
|
|
8330 FOR N = 1TO 25
|
|
8340 READ M$(N)
|
|
8360 NEXT N
|
|
8370 DATA 00,0403030400,030200,04020305010600,04040107032000,020400
|
|
8380 DATA 04080109020500,030700,04130207031000
|
|
8390 DATA 0409021100,0110031200,041100,030900,0209031500,00,00
|
|
8400 DATA 00,00,0122032100,040500,0125022200,012100
|
|
8410 DATA 0124042200,022300,022100
|
|
|
|
8430 A = 128: DIM A$(128)
|
|
8440 FOR N = 1 TO 128
|
|
8450 READ A$(N)
|
|
8470 NEXT N
|
|
8480 DATA 1400A01.I02D02M.,0500A03D08.D03N.,0500A03E08E09D24.D04D05I19E02M.
|
|
8485 DATA 0500A03E08D24.D04D06N.
|
|
8490 DATA 0500A03E07.I19M.,0500A03E03.I19M.,0500A03.I19E02M.,0600A19D08.D03N.
|
|
8500 DATA 0600A19E08E09D24.D04D05I03M.,0600A19E08D24.D04D06N.,0600A19.I03M.
|
|
8505 DATA 0100A09E07B22.D07N.
|
|
8510 DATA 0100A09E03B05.D07N.,0100A09.I14E02M.,0100A14.I16E02M.
|
|
8515 DATA 0200A16E07B22.D07N.,0200A16E03B05.D07N.
|
|
8520 DATA 0200A16.I14E02M.,0400A15E03B05.D07N.,0400A15E07B22.D07N.
|
|
8522 DATA 0400A15.I14E02M.,0100A15E03.I17M.,0100A15E07.I17M.,0100A15.I17E02M.
|
|
8525 DATA 0200A17.F01I15M.
|
|
8530 DATA 0300A17.D08N.,0400A17.D09K.,0300A18.D10F03E01E02I17M.
|
|
8531 DATA 0400A21E03.I19M.
|
|
8535 DATA 0400A21E07.I19M.,0400A21.I19E02M.,0200A22E03.I19M.,0200A22E07.I19M.
|
|
8540 DATA 0200A22.I19E02M.,0200A19.D11N.,0400A19.D11N.,0300A22.D12I23M.
|
|
8541 DATA 2500A01.D13.,2500I01.D14K.,1244A03.D15M.,1034B01.B01J.,1027B08.B08J.
|
|
8545 DATA 1028B04.B04J.,1029B05.B05J.,1032B21.B21J.,1038B24.B24J.
|
|
8548 DATA 1039B12.B12J.,1040B09.B09J.,1041B10.B10J.,1043B18.B18J.
|
|
8550 DATA 1050B03.B03J.,1042B22.B22J.,1037A20B05.H11P05E05D16K.,1037A20.D17K.
|
|
8553 DATA 1134.C01J.,1127.C08J.,1128.C04J.,1129.C05J.,1132.C21J.,1138.C24J.
|
|
8555 DATA 1143E09.D62K.
|
|
8556 DATA 1139.C12J.,1140.C09J.,1141.C10J.,1143.C18J.,1150.C03J.,1142.C22J.
|
|
8560 DATA 2400.A00L.,1249A05.E04D20G0405J.,1349A05.F04J.,2238A05E04.P24E08J.
|
|
8563 DATA 2338A05E08.F08P24J.,2338E08.D21N.,1848B10.D22L.,1841B10.D23N.
|
|
|
|
8566 DATA 1840B09.D24K.,2040B09.D25K.,1951A02.D26M.,1951.D27K.,2100A14.D28K.
|
|
8570 DATA 2100.D29K.,1542C22.D33K.,1542E07.D30K.,1542A14.D07N.
|
|
8575 DATA 1542A17E01.D10K.,1542E02.F02E07E06P22M.,1542.E07P22J.
|
|
8580 DATA 1529C05.D33K.,1529E03.D30K.,1529F07.D31L.,1529F05.D32L.
|
|
8590 DATA 1529E02.F02E03E06P06P05M.,1529.E03P06P05J.
|
|
8595 DATA 1642C22.D33K.,1642F07.D30K.,1642E06E03.D36F07P22M.
|
|
8597 DATA 1642E06.E02F07F06P22M.
|
|
8600 DATA 1642.F07P22M.,1629C05.D33K.,1629F03.D30K.,1629E07E06.D34F03P05M.
|
|
8605 DATA 1629E06.E02F06F03P05M.,1629.F03P05M.,1534B01.D35N.
|
|
8610 DATA 1735I16.D45K.,1735E02.D43K.,1735F03.D44K.,1735C04.D46K.
|
|
8615 DATA 1735.P16E10J.,5600A16F10.D47K.,5646A16.D48N.,5647A16.D48N.
|
|
8620 DATA 5645A16F09.D50D06N.,5645A16.D49I18M.,5543D18E09.D30K.
|
|
8625 DATA 5543D18.P18E09J.,5743D18F09.D30K.,5743D18.P18F09J.
|
|
8630 DATA 1233A24C12.D51K.,1233A24C03.D52N.,1233A24.G0503E11D63K.
|
|
8635 DATA 2636E11.D54F11D55K.,5350E11.D54F11D55K.,5232B21.D56N.
|
|
8640 DATA 5830F08.D57.,5830.D58D59.,1233A06.D61M.
|
|
8650 DATA 1233A25.D64N.
|
|
|
|
8700 PL = INT(RND(1)*9000+1000)
|
|
8800 C = 14: DIMC$(14)
|
|
8810 FOR N = 1 TO 14
|
|
8820 READ C$(N)
|
|
8840 NEXT N
|
|
8850 DATA G03E03.D00N.,G04E04.D01N.,I14I16I17I19.F02.,G07E07.D18N.,GO1.D19N.
|
|
8860 DATA H06C03C08.D37N.,H08D08.D39L.,H06D03.D38L.,G08E08B24.D40D21N.
|
|
8870 DATA H02.D41N.,G09E02.D42N.,G05E11.D52N.,I24E11.D53D52N.,.L.
|
|
8900 RETURN
|
|
|
|
9000 FOR IJ = 1 TO 100: NEXT IJ
|
|
9010 RETURN
|
|
|
|
11000 REM SUCCES
|
|
11020 PRINT "DISKLOAD IMG_01"
|
|
11030 & N: & C: & D
|
|
11040 PRINT "Vous voila en dehors de la maison..."
|
|
11050 & W,250
|
|
11055 & N
|
|
11060 PRINT " Cela est exceptionnel,vous etes le"
|
|
11065 PRINT "premier a sortir vivant de cette"
|
|
11070 PRINT "maison. Mais a votre place, je me"
|
|
11075 PRINT "mettrais a courir car un nain rode"
|
|
11080 PRINT "peut-etre dans les parages..."
|
|
11085 GOSUB 11100
|
|
11090 GOTO 20040
|
|
|
|
11100 REM TEA FOR TWO
|
|
11102 REM RESTORE 11125
|
|
11105 FOR N = 1 TO 110
|
|
11110 READ A1,A2,A3
|
|
11115 & M,1,A1,A2,10: & P,1,0,0,100: & W,A3
|
|
11120 & P,0,0,0,0
|
|
11122 NEXT N
|
|
11123 RETURN
|
|
11125 DATA 4,6,45,4,3,15,4,5,45,4,3,15,4,6,45,4,3,15,4,5,45
|
|
11130 DATA 4,1,15,4,5,45,4,1,15,4,3,45,4,1,15,4,5,45,4,1,15
|
|
11135 DATA 4,3,45,4,1,15,4,6,45,4,3,15,4,5,45,4,3,15,4,6,45
|
|
11140 DATA 4,3,15,4,5,45,4,1,30,4,10,30,4,10,22,4,7,8,4,9,30,4,9,22,4,7,8
|
|
11145 DATA 4,10,30,4,10,22,4,7,8,4,9,30,4,9,22,4,5,8,4,9,30,4,7,22,4,5,8
|
|
11150 DATA 4,7,30,4,7,22,4,5,8,4,9,30,4,9,22,4,5,8,4,7,30,4,7,22,4,5,8
|
|
11155 DATA 4,10,30,4,10,22,4,7,8,4,9,30,4,9,22,4,7,8,4,10,30,4,10,22,4,7,8
|
|
11160 DATA 4,9,30,4,9,30,5,2,120,5,1,60,4,6,45,4,3,15,4,5,45,4,3,15,4,6,45
|
|
11165 DATA 4,3,15,4,5,45,4,1,15,4,5,45,4,1,15,4,3,45,4,1,15,4,5,45,4,1,15
|
|
11170 DATA 4,3,45,4,1,15,4,6,45,4,3,15,4,5,45,4,3,15,4,6,45,4,3,15,4,5,45
|
|
11175 DATA 4,1,30,5,3,45,5,3,15,5,1,45,5,1,15,4,11,45,4,11,15,4,10,45,4,10,15
|
|
11180 DATA 5,1,45,5,1,15,4,11,45,4,11,15,4,10,45,4,10,15,4,8,45,4,8,15
|
|
11185 DATA 4,6,45,4,3,15,4,5,45,4,3,15
|
|
11190 DATA 4,6,45,4,3,15,4,5,45,4,10,15,4,6,120
|
|
|
|
20000 REM TOMBE
|
|
20005 PRINT "DISKLOAD IMGTMB"
|
|
20010 & C: & D: & N
|
|
20020 PRINT "Vous etes mort !": & W,100
|
|
20030 IF PEEK(254)=1 THEN GOSUB 21000
|
|
20040 & L: PRINT: & L: X$="": INPUT "Voulez-vous rejouer ";X$
|
|
20050 IF X$ = "O" OR X$ = "o" THEN RUN 45
|
|
20060 IF X$ = "N" OR X$ = "n" THEN 20080
|
|
20070 GOTO 20040
|
|
20080 & N: PRINT " AU REVOIR"
|
|
20090 END
|
|
|
|
21000 REM SARABANDE
|
|
21005 REM RESTORE 21040
|
|
21015 FOR N = 1 TO 75
|
|
21020 READ A1,A2,A3,A4,A5
|
|
21025 READ A6,A7,A8,A9,A0
|
|
21030 & M,1,A1,A2,A3: & M,2,A4,A5,A6: & M,3,A7,A8,A9: & P,7,0,0,100: & W,A0
|
|
21031 IF PEEK(-16384) > 128 THEN & P,0,0,0,0: RETURN
|
|
21032 IF N > 70 THEN NEXT N: & P,0,0,0,0: RETURN
|
|
21035 & P,0,0,0,0: NEXTN
|
|
21040 DATA 3,6,8,3,3,8,2,10,8,80
|
|
21045 DATA 3,6,8,3,3,8,2,10,8,80
|
|
21050 DATA 0,1,1,0,1,1,0,1,1,40
|
|
21055 DATA 3,8,8,3,5,8,0,1,1,40
|
|
21060 DATA 3,5,8,3,2,8,2,10,8,80
|
|
21065 DATA 3,5,8,3,2,8,2,10,8,40
|
|
21070 DATA 1,11,8,0,1,1,0,1,1,40
|
|
21075 DATA 1,10,8,0,1,1,0,1,1,40
|
|
21080 DATA 1,8,8,0,1,1,0,1,1,40
|
|
21085 DATA 3,10,8,3,6,9,3,1,8,80
|
|
21090 DATA 3,10,8,3,6,9,3,1,8,80
|
|
21095 DATA 0,1,1,0,1,1,0,1,1,40
|
|
21100 DATA 3,11,8,3,8,8,0,1,1,40
|
|
21105 DATA 3,8,8,3,5,8,3,1,8,80
|
|
21110 DATA 3,8,8,3,5,8,3,1,8,40
|
|
21115 DATA 2,1,8,0,1,1,0,1,1,40
|
|
21120 DATA 1,11,8,0,1,1,0,1,1,40
|
|
21125 DATA 1,10,8,3,7,8,3,10,8,40
|
|
21130 DATA 3,11,8,3,8,8,3,3,8,80
|
|
21135 DATA 3,11,8,3,8,8,3,3,8,80
|
|
21140 DATA 1,8,8,0,1,1,0,1,1,40
|
|
21145 DATA 1,8,8,3,10,8,4,1,8,40
|
|
21150 DATA 3,10,8,3,6,8,3,3,8,80
|
|
21155 DATA 3,10,8,3,6,8,3,3,8,80
|
|
21160 DATA 0,1,1,0,1,1,0,1,1,40
|
|
21165 DATA 3,10,8,2,1,8,0,1,1,40
|
|
21170 DATA 4,3,8,3,10,8,1,11,8,80
|
|
21175 DATA 4,3,8,3,8,8,2,11,9,80
|
|
21180 DATA 0,1,1,0,1,1,0,1,1,40
|
|
21185 DATA 4,5,8,0,1,1,0,1,1,40
|
|
21190 DATA 4,2,8,3,10,8,3,5,8,80
|
|
21195 DATA 4,2,8,3,10,8,3,5,8,40
|
|
21200 DATA 2,8,8,0,1,1,0,1,1,40
|
|
21202 DATA 2,6,8,0,1,1,0,1,1,40
|
|
21203 DATA 2,5,8,0,1,1,0,1,1,40
|
|
21205 DATA 3,6,8,3,3,8,2,10,8,80
|
|
21210 DATA 3,6,8,3,3,8,2,10,8,80
|
|
21215 DATA 0,1,1,0,1,1,0,1,1,40
|
|
21220 DATA 3,8,8,3,5,8,0,1,1,40
|
|
21225 DATA 3,5,8,3,2,8,2,10,8,80
|
|
21230 DATA 3,5,8,3,2,8,2,10,8,40
|
|
21235 DATA 1,11,8,0,1,1,0,1,1,40
|
|
21240 DATA 1,10,8,0,1,1,0,1,1,40
|
|
21245 DATA 1,8,8,0,1,1,0,1,1,40
|
|
21250 DATA 3,10,8,3,6,9,3,1,8,80
|
|
21255 DATA 3,10,8,3,6,9,3,1,8,80
|
|
21260 DATA 0,1,1,0,1,1,0,1,1,40
|
|
21265 DATA 3,11,8,3,8,8,0,1,1,40
|
|
21270 DATA 3,8,8,3,5,8,3,1,8,80
|
|
21275 DATA 3,8,8,3,5,8,3,1,8,40
|
|
21280 DATA 2,1,8,0,1,1,0,1,1,40
|
|
21285 DATA 1,11,8,0,1,1,0,1,1,40
|
|
21290 DATA 1,10,8,3,7,8,3,10,8,40
|
|
21295 DATA 3,11,8,3,8,8,3,3,8,80
|
|
21300 DATA 2,8,8,0,1,1,0,1,1,40
|
|
21305 DATA 3,11,8,3,8,8,3,1,8,40
|
|
21310 DATA 2,8,8,0,1,1,0,1,1,40
|
|
21315 DATA 2,1,8,0,1,1,0,1,1,40
|
|
21320 DATA 4,1,8,2,5,8,0,1,1,40
|
|
21325 DATA 3,10,8,3,6,8,3,1,8,80
|
|
21330 DATA 3,10,8,2,3,8,0,1,1,40
|
|
21335 DATA 4,3,8,3,6,8,2,11,8,40
|
|
21340 DATA 4,2,8,0,1,1,0,1,1,40
|
|
21345 DATA 4,3,8,3,11,8,2,8,8,40
|
|
21350 DATA 4,5,8,0,1,1,0,1,1,40
|
|
21355 DATA 4,6,8,3,10,8,2,10,8,80
|
|
21360 DATA 4,5,8,3,8,8,1,10,8,40
|
|
21365 DATA 0,1,1,3,8,8,1,10,8,40
|
|
21370 DATA 4,3,8,0,1,1,0,1,1,40
|
|
21375 DATA 4,3,8,3,6,8,2,3,8,80
|
|
21380 DATA 3,3,8,3,10,8,3,6,8,40
|
|
21385 DATA 3,3,7,3,10,7,3,6,7,40
|
|
21390 DATA 3,3,6,3,10,6,3,6,6,40
|
|
21395 DATA 3,3,5,3,10,5,3,6,5,40
|
|
21400 DATA 3,3,4,3,10,4,3,6,5,40
|