10 HOME 20 PRINT TAB(13);"***************" 30 PRINT TAB(13);"* *" 40 PRINT TAB(13);"* SORCELLERIE *" 50 PRINT TAB(13);"* *" 60 PRINT TAB(13);"***************" 70 PRINT : PRINT : PRINT 75 PRINT "AUTEUR: RAFI DERYEGHIYAN, DECEMBRE 1985" 76 PRINT "ADAPTATION: D.RIOUAL, JUIN 2018" 77 PRINT "_______________________________________" 78 PRINT : PRINT 80 PRINT "JUSQU'EN 2036, LE MONDE VIVAIT EN PAIX, PUIS DES TROUBLES COMMENCERENT A REMUER LA SOCIETE." 90 PRINT 91 PRINT "22 JUILLET 2037 : REAPPARITION DE SOR-" 92 PRINT "CIERS AUX POUVOIRS TERRIFIANTS. ENCORE" 93 PRINT "PEU NOMBREUX, ILS ETAIENT MAITRISES" 94 PRINT "FACILEMENT." 100 GOSUB 170 101 PRINT "NOEL 2037 : COUP DE FORCE DES SORCIERS." 102 PRINT "TOUTES LES ARMEES SONT REDUITES A NEANT."; 103 PRINT "PROCLAMATION DE LA DICTATURE DES SOR-" 104 PRINT "CIERS." 110 PRINT 111 PRINT "FEVRIER 2038 : LES SORCIERS PEUVENT" 112 PRINT "A PRESENT DETRUIRE LA VOLONTE DES " 113 PRINT "RESISTANTS." 114 PRINT 120 PRINT "CONSCIENTS DU DANGER, DES DIZAINES DE " 121 PRINT "PERSONNES ONT ESSAYE DE COMBATTRE CE " 122 PRINT "POUVOIR MALEFIQUE, MAIS EN VAIN." 130 PRINT 131 PRINT "APRES 6 ANS DE RECHERCHES, VOUS TROUVEZ" 140 PRINT "ENFIN UN INDICE : L'ARME ABSOLUE SE" 141 PRINT "TROUVE DANS UN CHATEAU." 150 PRINT : PRINT 151 PRINT "QUELLE EST DONC CETTE ARME ABSOLUE ?" 152 PRINT : PRINT : PRINT "A VOUS DE LE DECOUVRIR !" 160 GOSUB 170 : GOTO 200 170 HTAB 10 : VTAB 24:INVERSE : PRINT "APPUYEZ SUR UNE TOUCHE";:NORMAL 175 GOSUB 180 176 HOME 177 RETURN 180 GET A$ 190 RETURN 200 PRINT "VOICI QUELQUES ELEMENTS POUR VOUS AIDER DANS VOTRE QUETE :" 210 PRINT : PRINT 220 PRINT " N POUR ALLER AU NORD." 230 PRINT " S POUR ALLER AU SUD." 240 PRINT " E POUR ALLER A L'EST." 250 PRINT " O POUR ALLER A L'OUEST." 260 PRINT " INV POUR L'INVENTAIRE." 270 PRINT " QUI POUR ARRETER." 275 PRINT " VOC POUR LE VOCABULAIRE." 280 PRINT:PRINT:PRINT "POUR LE RESTE, A VOUS DE JOUER !";:GOSUB 180 289 REM ===== INIT DES DONNEES ===== 290 DIM LI$(24,7):DIM OB$(30,2):DIM VE$(32) 300 FOR I=1 TO 24:FOR J=1 TO 7 310 READ LI$(I,J):NEXT J:NEXT I 320 DATA "DEVANT LA PORTE DU CHATEAU",,xExx,,2,, 330 DATA "DANS L'ENTREE DU CHATEAU",,xESO,,3,7,1 340 DATA "DANS LE GRAND SALON","MEUBLES DE LUXE.",xESO,,4,8,2 350 DATA "DANS UN COULOIR MAGNIFIQUE",,NESO,6,5,9,3 360 DATA "DANS LA SALLE DE BAINS","EVIER.",xxxO,,,,4 370 DATA "DANS UNE CHAMBRE SOMPTUEUSE","LIT.",xxSx,,,4, 380 DATA "DANS LE PETIT SALON",,NESx,2,8,11, 390 DATA "DANS LA CUISINE","MEUBLES.",NxSO,3,,13,7 400 DATA "DANS LA CHAMBRE D'AMIS","LIT.PORTE ",xxxx,,,, 410 DATA "DANS UN ATELIER",,xxxO,,,,24 420 DATA "DANS UN COULOIR",,NExx,7,12,, 430 DATA "DANS UN LONG COULOIR DE PIERRE",,xExO,,13,,11 440 DATA "DANS UN COULOIR",,NxxO,8,,,12 450 DATA "DANS UNE PIECE SECRETE",,NExx,12,15,, 460 DATA "DANS UNE SALLE DE TORTURE !","INSTRUMENTS DE TORTURE.",xxxO,,,,14 470 DATA "AU GRENIER",,xExx,,17,, 480 DATA "DANS UNE GRANDE PIECE ILLUMINEE PAR DES BOUGIES",,xExO,,18,,16 490 DATA "DANS UNE PETITE PIECE SOMBRE",,xxxO,,,,17 500 DATA "SUR UNE CORNICHE","LE VIDE.",xxSx,,,20, 510 DATA "DANS UNE PIECE AU SOUS-SOL",,NESx,19,21,22, 520 DATA "DANS UN ASCENSEUR",,xxxx,,,, 530 DATA "DANS UNE SALLE OU TRAINENT DES SQUELETTES",,NxSx,20,,23, 540 DATA "DANS UNE SALLE ABANDONNEE DEPUIS LONGTEMPS",,Nxxx,22,,, 550 DATA "DANS UNE GROTTE",,xExO,,10,,9 560 FOR I=1 TO 30: FOR J=1 TO 2: READ OB$(I,J): NEXT J:NEXT I 570 DATA PILE,-6,AMPOULE,3,LAMPE,-3,GANTS,5,GATEAU,8,TABLEAU,9 580 DATA SCIE,10,FIOLE,10,CORDE,15,PARCHEMIN,17,ECHELLE,23,DRAPS,6,PLAFOND,0 590 DATA GROTTE,-9,FENETRE,14,BARREAU,-14,STATUE,16,FENTE,18,CHANDELIERS,4 600 DATA NORD,0,SUD,0,EST,0,OUEST,0,BOUTON,-12,LIT,0,ANNEAU,14 610 DATA CHIENS,22,MUR,0,PORTE,0,PASSAGE,-12 620 FOR I=1 TO 32:READ VE$(I):NEXT I 630 DATA "VA ","ENTRE","MONTE","DESCENDS","REGARDE","EXAMINE","OBSERVE","PRENDS","SAISIS","SAI","DEVISSE","LACHE","POSE","LANCE" 640 DATA "JETTE","OUVRE","FERME","SCIE","EMBRASSE","POUSSE","LIS","MANGE","DONNE","ATTACHE","ALLUME","INSERE","APPUIE","VISSE","DETACHE","ETEINS","VA","BOIS" 648 REM ===== FLAGS ET VARIABLES ===== 649 REM CH=Chiens vivants, LA=Lampe Allumee, AL=Ampoule Eteinte 650 CH=0 : LA=0 : AL=0 : PA=0 : CO=0 654 REM BA=Barreau Scie , FE=Fenetre Ouverte , CR=Corde Attache , DR=Draps attaches, EM=Statue embrasse, NO=Nombre Objets 655 BA=0 : FE=0 : CR=0 : DR=0 : EM=0 : NO=0 659 REM L=Lieu, FI=Fiole Brisee, LE=Langue Etrangere 660 L=1 : FI=0 : LE=0 669 REM ===== BOUCLE PRINCIPALE ===== 670 HOME 680 IF L = 24 AND LA = 0 THEN 3770 690 IF L = 17 AND EM = 0 THEN 3780 700 IF L = 23 AND CH = 0 THEN 3790 710 PRINT "VOUS ETES ";LI$(L,1):PRINT 720 Q1=1 730 PRINT "VOUS VOYEZ : ";LI$(L,2);:IF LI$(L,2) = "" THEN Q1=0 740 IF L = 9 AND AC = 0 THEN PRINT" VOUS ENFERMANT DANS LA PIECE.";:GOTO 760 750 IF L=9 AND AC = 1 THEN PRINT" RONGEE PAR L'ACIDE."; 760 Q2=0 770 FOR I=1 TO 30:IF VAL(OB$(I,2))<>L THEN 900 780 PRINT OB$(I,1);:Q2=1 790 IF I = 2 AND AL=0 THEN PRINT" ALLUMEE.";:GOTO 900 800 IF I = 3 AND LA=0 THEN PRINT" ETEINTE.";:GOTO 900 810 IF I = 3 AND LA=1 THEN PRINT" ALLUMEE.";:GOTO 900 820 IF I = 8 AND FI=0 THEN PRINT" PLEINE.";: GOTO 900 830 IF I = 8 AND FI=1 THEN PRINT" CASSEE.";: GOTO 900 840 IF I = 15 AND FE=0 THEN PRINT" FERMEE.";: GOTO 900 850 IF I = 15 AND FE=1 THEN PRINT" OUVERTE.";:GOTO 900 860 IF I = 16 AND BA=1 THEN PRINT" SCIE.";:GOTO 900 870 IF I = 18 THEN PRINT" DANS LE MUR.";:GOTO 900 880 IF I = 27 AND CH=0 THEN PRINT" AFFAMES.";:GOTO 900 890 IF I = 27 AND CH=1 THEN PRINT" MORTS."; 895 PRINT "."; 900 NEXT I 905 IF Q1 = 0 AND Q2 = 0 THEN PRINT "RIEN DE SPECIAL.":PRINT:GOTO 920 910 PRINT 920 PRINT "DIRECTIONS : "; 930 FOR I=1 TO 4:DI$=MID$(LI$(L,3),I,1) 940 IF DI$ = "N" THEN PRINT "NORD."; 950 IF DI$ = "S" THEN PRINT "SUD."; 960 IF DI$ = "E" THEN PRINT "EST."; 970 IF DI$ = "O" THEN PRINT "OUEST.": 980 NEXT I 990 PRINT 1000 PRINT"________________________________________" 1010 REM 1020 IF L = 21 THEN 3800 1030 VTAB 9 : HTAB 1 1040 PRINT: PRINT "QUE FAITES-VOUS ? ";:GOSUB 1200 1045 PRINT 1049 REM ===== ANALYSE LEX ET SYNTAXIQUE ===== 1050 IF RIGHT$(R$,1) = " " AND LEN(R$) > 1 THEN R$=LEFT$(R$,LEN(R$)-1): GOTO 1050 1060 IF R$ = "" OR R$ = " " THEN 1040 1070 IF R$ = "O" OR R$ = "E" OR R$ = "S" OR R$ = "N" THEN M$=R$ : GOTO 1490 1080 IF LEFT$(R$,3) = "QUI" THEN HOME:END 1090 IF LEFT$(R$,3) = "INV" THEN 1290 1095 IF LEFT$(R$,3) = "VOC" THEN GOSUB 3900:GOTO 1040 1100 X=0 : FOR I=LEN(R$) TO 1 STEP -1 1110 IF MID$(R$,I,1) = " " OR MID$(R$,I,1) = "'" THEN X= I:I= 1 1120 NEXT I 1125 IF X = 0 THEN PRINT "JE NE COMPRENDS PAS, IL MANQUE UN MOT !": GOTO 1190 1130 V$=LEFT$(R$,X-1):M$=MID$(R$,X+1,4) 1140 V=0 : FOR I=1 TO 32 : IF LEFT$(V$,3) = LEFT$(VE$(I),3) THEN V=I:I=32 1150 NEXT I 1155 IF V = 0 THEN PRINT "JE NE COMPRENDS PAS LE VERBE ";V$ 1160 M=0 1161 FOR I=1 TO 30 1162 IF M$ = LEFT$(OB$(I,1),4) THEN M=I : I=30 1170 NEXT I 1171 IF M=0 THEN PRINT "JE NE COMPRENDS PAS LE MOT ";MID$(R$,X+1,LEN(R$)) 1179 REM ===== AIGUILLAGE EN FONCTION DU VERBE ===== 1180 ON V GOTO 1380,1380,1530,1640,1820,1820,1820,2290,2290,2290,2460,2530,2530,2560,2360,2650,2760,2850,2910,2940,3050,3090,3140,3220,3310,3350,2940,3440,3500,3580,1380,3620 1190 PRINT "ESSAYEZ AUTRE CHOSE !": GOTO 1040 1199 REM ===== SUBROUTINE SAISIE OPERATEUR ===== 1200 R$=" " 1210 GET A$ 1220 IF ASC(A$) <> 13 THEN 1250 1230 IF LEN(R$) > 1 THEN R$= RIGHT$(R$,LEN(R$)-1): RETURN 1240 R$="":RETURN 1250 IF ASC(A$) = 8 AND LEN(R$) > 1 THEN R$=LEFT$(R$,LEN(R$)-1):PRINT A$;" ";A$;:GOTO 1210 1260 IF A$ = " " OR A$ = "'" THEN 1280 1270 IF ASC(A$) < 65 OR ASC(A$) > 91 THEN 1210 1280 PRINT A$;:R$=R$+A$:GOTO 1210 1290 IF NO = 0 THEN PRINT:PRINT "VOUS NE POSSEDEZ RIEN.":GOTO 1040 1300 PRINT:PRINT "VOUS PORTEZ :":PRINT:FOR I=1 TO 12: IF OB$(I,2)<>"100" THEN 1370 1310 PRINT OB$(I,1);"."; 1320 IF I = 3 AND LA = 0 THEN PRINT" ETEINTE.";:GOTO 1370 1330 IF I = 3 AND LA = 1 THEN PRINT" ALLUMEE.";:GOTO 1370 1340 IF I <> 8 THEN 1370 1350 IF FI=0 THEN PRINT" PLEINE.";:GOTO 1370 1360 PRINT" CASSEE."; 1370 NEXT I: PRINT: GOTO 1040 1379 REM ===== VERBE VA OU ENTRE ===== 1380 IF M <> 30 THEN 1410 1390 IF L <> 12 OR VAL(OB$(30,2)) < 0 THEN PRINT:PRINT "OU VOYEZ-VOUS UN ";OB$(30,1);" ? ":GOTO 1040 1400 L=14 : GOTO 670 1410 IF M <>14 THEN 1440 1420 IF L <> 9 OR VAL(OB$(14,2)) < 0 THEN PRINT:PRINT "OU VOYEZ-VOUS UNE ";OB$(14,1);" ? ":GOTO 1040 1430 L=24 : GOTO 670 1440 IF M <> 29 THEN 1480 1450 IF L <> 9 THEN PRINT:PRINT "DONNEZ UNE DIRECTION SVP." : GOTO 1040 1460 IF AC=0 THEN PRINT:PRINT "IMPOSSIBLE ! ELLE EST FERMEE.": GOTO 1040 1470 L=4:GOTO 670 1480 IF M<20 OR M>23 THEN 1520 1490 FOR I=1 TO 4 1500 IF LEFT$(M$,I)=MID$(LI$(L,3),I,1) THEN L=VAL(LI$(L,I+3)):GOTO 670 1510 NEXT I 1520 PRINT:PRINT "VOUS NE POUVEZ PAS ALLER PAR LA !":GOTO 1040 1529 REM ===== MONTE ===== 1530 IF L<>6 AND L<>19 THEN PRINT:PRINT "VOUS NE POUVEZ PAS MONTER ICI !":GOTO 1040 1540 IF L<>6 THEN 1590 1550 IF M<>11 THEN PRINT:PRINT "VOUS DEVEZ AVOIR TROP BU.":GOTO 1040 1560 IF OB$(11,2)="100" THEN PRINT :PRINT "POSEZ D'ABORD VOTRE ";OB$(11,1):GOTO 1040 1570 IF VAL(OB$(11,2))<>L THEN PRINT:PRINT "QUELLE ";OB$(11,1);" ?":GOTO 1040 1580 L=16:GOTO 670 1590 IF M=12 THEN L=14:GOTO 670 1600 IF M<>11 THEN PRINT:PRINT "VOUS DEVRIEZ VOUS REPOSER UN PEU.":GOTO 1040 1610 IF OB$(11,2)="100" THEN PRINT:PRINT "ET SI VOUS POSIEZ VOTRE ";OB$(11,1);" ?":GOTO 1040 1620 IF VAL(OB$(11,2))<>L THEN PRINT:PRINT "QUELLE ";OB$(11,1);" ?":GOTO 1040 1630 L=14:GOTO 670 1639 REM ===== DESCENDS ===== 1640 IF L<>14 AND L<>16 THEN PRINT:PRINT "VOUS NE POUVEZ PAS DESCENDRE ICI.":GOTO 1040 1650 IF L=14 THEN 1680 1660 IF M<>11 THEN PRINT:PRINT "NE DITES PAS N'IMPORTE QUOI !":GOTO 1040 1670 L=6:GOTO 670 1680 IF M<>11 AND M<>9 AND M<>12 THEN PRINT:PRINT "REPOSEZ-VOUS DONC UN PEU...":GOTO 1040 1690 IF FE=0 THEN PRINT :PRINT "IMPOSSIBLE : LA "; OB$(15,1);" EST FERMEE.":GOTO 1040 1700 IF BA=0 THEN PRINT:PRINT "UN ";OB$(16,1);" VOUS EMPECHE DE PASSER !":OB$(16,2)="14":FOR Z=1 TO 2000:NEXT Z:GOTO 500 1710 IF M=9 OR M=12 THEN 1750 1720 IF OB$(11,2)="100" OR VAL(OB$(11,2))=L THEN PRINT:PRINT "VOUS NE POUVEZ PAS.":GOTO 1040 1730 IF OB$(11,2)="19" THEN L=19:GOTO 670 1740 PRINT:PRINT "QUELLE ";OB$(11,1);" ?":GOTO 1040 1750 IF M=12 THEN 1790 1760 IF VAL(OB$(9,2))<>L AND OB$(9,2)<>"100" THEN PRINT:PRINT "OUELLE ";OB$(9,1);" ?":GOTO 1040 1770 IF CR THEN PRINT:PRINT "LA ";OB$(9,1);" CASSE !":PRINT "VOUS VOUS ECRASEZ AU FOND DU RAVIN":GOTO 3670 1780 PRINT:PRINT "VOUS PASSEZ PAR LA ";OB$(15,1);" ET ALLEZ VOUS ECRASER AU FOND DU RAVIN.":GOTO 3670 1790 IF VAL(OB$(12,2))<>L AND OB$(12,2)<>"100" THEN PRINT:PRINT "QUEL ";OB$(12,1);" ?":GOTO 1040 1800 IF DR THEN L=19:GOTO 670 1810 GOTO 1780 1819 REM ===== REGARDE EXAMINE OBSERVE ===== 1820 IF M=0 THEN 2280 1830 IF VAL(OB$(M,2))=0 OR VAL(OB$(M,2))=100 OR VAL(OB$(M,2))=L THEN 1850 1840 PRINT: PRINT "JE NE VOIS PAS CA ICI !" : GOTO 1040 1850 ON M GOTO 1860,1870,1890,2280,1920,1930,2280,1940,1960,1970,2280,2280,1980,2000,2020,2070,2100,2110,2120,2280,2280,2280,2280,2130,2150,2180,2190,2210,2240,2270 1860 PRINT:PRINT "VOUS N'EN N'AVEZ JAMAIS VU ?":GOTO 1040 1870 IF AL=0 THEN PRINT :PRINT "ELLE EMET UNE LUMIERE AVEUGLANTE.":GOTO 1040 1880 PRINT :PRINT "ELLE EST ETEINTE.":GOTO 1040 1890 IF OB$(1,2)<>"100" THEN PRINT:PRINT "IL MANQUE UNE ";OB$(1,1):GOTO 1040 1900 IF LA=0 THEN PRINT:PRINT "ELLE EST ETEINTE.": GOTO 1040 1910 PRINT:PRINT "ELLE EST ALLUMEE.":GOTO 1040 1920 PRINT:PRINT "IL EST AU CHOCOLAT.":GOTO 1040 1930 PRINT:PRINT "C'EST UN PORTRAIT DE SATAN.":GOTO 1040 1940 IF FI = 0 THEN PRINT:PRINT "ELLE EST PLEINE DE LIQUIDE.":GOTO 1040 1950 PRINT:PRINT "ELLE EST BRISEE.":GOTO 1040 1960 PRINT:PRINT "ELLE A L'AIR ANCIENNE.":GOTO 1040 1970 PRINT:PRINT "IL Y A QUELQUE CHOSE MARQUE DESSUS.": GOTO 1040 1980 IF L <> 6 THEN 2280 1990 PRINT: PRINT "IL Y A UN TROU ASSEZ GRAND POUR PASSER.": GOTO 1040 2000 REM 2010 PRINT: PRINT "IL FAIT ASSEZ SOMBRE A L'INTERIEUR.": GOTO 1040 2020 IF FE = 0 THEN PRINT: PRINT "ELLE EST FERMEE.": GOTO 2040 2030 PRINT: PRINT "ELLE EST OUVERTE." 2040 IF VAL(OB$(16,2)) < 0 THEN PRINT "VOUS VOYEZ EGALENENT UN ";OB$(16,1): OB$(16,2)="14": GOTO 2060 2050 PRINT "IL Y A UN ";OB$(16,1);: IF (BA) THEN PRINT " SCIEE"; 2060 PRINT: PRINT "VOUS VOYEZ AUSSI UN RAVIN TRES PROFOND.": GOTO 1040 2070 REM 2080 IF BA = 0 THEN PRINT: PRINT "IL A L'AIR SOLIDE.": GOTO 1040 2090 PRINT:PRINT "IL EST SCIE.": GOTO 1040 2100 PRINT:PRINT "C'EST UNE STATUE DE SATAN.": GOTO 1040 2110 PRINT: PRINT "ELLE EST ETROITE, HORIZONTALE, ET DANS":PRINT "LE MUR.": GOTO 1040 2120 PRINT: PRINT "ILS SONT EN OR INCRUSTE DE DIAMANTS.": GOTO 1040 2130 REM 2140 PRINT: PRINT "VOUS N'EN N'AVEZ JAMAIS VU ?":GOTO 1040 2150 IF L = 9 THEN 2280 2160 IF OB$(1,2) <> "-6" THEN PRINT:PRINT"C'EST UN LIT A BALDAQUINS.": GOTO 1040 2170 PRINT: PRINT "C'EST UN LIT A BALDAQUINS.": PRINT "VOUS DECOUVREZ UNE ";OB$(1,1);" CACHEE DESSOUS !": FOR Z=1 TO 2000: NEXT Z: OB$(1,2)="6": GOTO 670 2180 PRINT: PRINT "IL EST ACCROCHE DANS LE MUR.":GOTO 1040 2190 IF CH = 0 THEN PRINT: PRINT "ILS ONT L'AIR MECHANTS.": GOTO 1040 2200 PRINT: PRINT "ILS SONT MORTS.": GOTO 1040 2210 IF L <> 12 THEN 2280 2220 IF OB$(24,2)="12" THEN 2280 2230 PRINT: PRINT "IL EST FENDU DE HAUT EN BAS.":PRINT "VOUS REMARQUEZ EGALEMENT UN ";OB$(24,1): OB$(24,2)="12": FOR Z=1 TO 2000: NEXT Z: GOTO 670 2240 IF L <> 9 THEN 2280 2250 IF AC = 0 THEN PRINT: PRINT "ELLE EST EN ACIER.": GOTO 1040 2260 PRINT: PRINT "ELLE EST RONGEE PAR L'ACIDE.":GOTO 1040 2270 REM 2280 PRINT: PRINT "VOUS NE VOYEZ RIEN DE SPECIAL." : GOTO 1040 2289 REM ===== PRENDS SAISIS ===== 2290 IF M = 24 THEN 2940 2300 IF M = 2 THEN 2400 2310 IF NO = 4 THEN PRINT: PRINT "VOUS PORTEZ TROP D'OBJETS !": GOTO 1040 2320 IF M = 0 THEN PRINT : PRINT "PRENDRE QUOI ???": GOTO 1040 2330 IF OB$(M,2) = "100" THEN PRINT : PRINT " VOUS L'AVEZ DEJA.": GOTO 1040 2340 IF VAL(OB$(M,2)) <> L THEN PRINT: PRINT "JE NE VOIS PAS CA ICI !": GOTO 1040 2350 IF M = 9 THEN 2420 2360 IF M = 12 THEN 2440 2370 IF M > 12 THEN PRINT: PRINT "VOUS NE POUVEZ PAS PRENDRE CA !": GOTO 1040 2380 IF M = 6 THEN OB$(14,2)="9" 2390 OB$(M,2)="100": NO=NO+1 : GOTO 670 2400 IF AL=1 THEN 2390 2410 PRINT: PRINT "VOUS OUBLIEZ DE FAIRE QUELQUE CHOSE !": GOTO 1040 2420 IF CR THEN 2410 2430 GOTO 2390 2440 IF DR THEN 2410 2450 GOTO 2390 2459 REM ===== DEVISSE ===== 2460 IF M <> 2 THEN PRINT : PRINT "CA NE SE DEVISSE PAS !": GOTO 1040 2470 IF L <> 3 THEN PRINT : PRINT "ON NE PEUT RIEN DEVISSER ICI.": GOTO 1040 2480 IF AL=1 THEN PRINT: PRINT "C'EST DEJA FAIT.": GOTO 1040 2490 IF OB$(4,2) <> "100" THEN PRINT: PRINT "IMPOSSIBLE : VOUS VOUS BRULEZ." : GOTO 1040 2500 IF OB$(3,2)<>"-3" THEN AL=1: GOTO 670 2510 AL=1: PRINT: PRINT "ELLE ETAIT RELIEE A UN DISPOSITIF ELEC-":PRINT "TRONIQUE, ET QUELQUE CHOSE EST TOMBE" : OB$(3,2)="3" 2520 FOR Z=1 TO 4000: NEXT Z: GOTO 670 2529 REM ===== LACHE POSE ===== 2530 IF M=0 THEN PRINT: PRINT "LACHER QUOI ???": GOTO 1040 2540 IF OB$(M,2)<>"100" THEN PRINT: PRINT "VOUS NE L'AVEZ PAS AVEC VOUS.": GOTO 1040 2550 OB$(M,2)=STR$(L): NO=NO-1: PRINT: PRINT "OK": FOR Z=1 TO 1000: NEXT Z: GOTO 670 2560 IF M <> 8 THEN 2530 2570 IF L <> 9 THEN 2530 2580 IF OB$(8,2)<>"100" THEN PRINT: PRINT "VOUS NE L'AVEZ PAS.": GOTO 1040 2590 IF FI THEN 2530 2600 PRINT: PRINT "OU ? ";: GOSUB 1200 2610 IF LEFT$(R$,4)<>LEFT$(OB$(29,1),4) THEN PRINT : PRINT: PRINT "EN RETOMBANT, ELLE SE BRISE.": FI= 1: OB$(8,2)="9": FOR Z=1 TO 2000: NEXT Z: NO=NO-1: GOTO 670 2620 PRINT: PRINT "LA ";OB$(29,1);" EST RONGEE PAR L'ACIDE QUE":PRINT "CONTENAIT LA ";OB$(8,1);"." 2630 NO=NO-1 2640 FI=1: AC=1: OB$(8,2)="9": FOR Z=1 TO 2000: NEXT Z : GOTO 670 2649 REM ===== OUVRE ===== 2650 IF M<>15 AND M<>29 THEN PRINT: PRINT "CA NE S'OUVRE PAS.": GOTO 1040 2660 IF M=29 THEN 2700 2670 IF L<>14 THEN PRINT: PRINT "QUELLE ";OB$(15,1);" ?": GOTO 1040 2680 IF FE THEN PRINT: PRINT " VOUS L'AVEZ DEJA FAIT.": GOTO 1040 2690 FE=1: PRINT: PRINT "OK": FOR Z=1 TO 1000: NEXT Z: GOTO 670 2700 IF L=24 OR L=19 THEN PRINT: PRINT "QUELLE ";OB$(29,1);" ?": GOTO 1040 2710 IF L<>9 THEN PRINT: PRINT "ELLE EST DEJA OUVERTE.": GOTO 1040 2720 IF AC THEN 2740 2730 PRINT: PRINT "IMPOSSIBLE, IL N'Y A PAS DE POIGNEE ET":PRINT "ELLE A L'AIR SOLIDE.": GOTO 1040 2740 PRINT: PRINT "VOUS NE POUVEZ PAS, MAIS IL Y A UN TROU ASSEZ GRAND POUR PASSER." 2750 GOTO 1040 2759 REM ===== FERME ===== 2760 IF M <> 15 AND M <> 29 THEN PRINT: PRINT "CA NE SE FERME PAS.": GOTO 1040 2770 IF M=29 THEN 2810 2780 IF L<>14 THEN PRINT: PRINT "QUELLE ";OB$(15,1 );" ?": GOTO 1040 2790 IF FE=0 THEN PRINT: PRINT "VOUS L'AVEZ DEJA FAIT.": GOTO 1040 2800 FE=0: PRINT: PRINT "OK": FOR Z=1 TO 1000: NEXT Z: GOTO 670 2810 IF L=24 OR L=19 THEN PRINT: PRINT "QUELLE ";OB$(29,1);" ?": GOTO 1040 2820 IF L<>9 THEN PRINT: PRINT "VOUS NE POUVEZ PAS.": GOTO 1040 2830 IF AC=0 THEN PRINT: PRINT "N'OUBLIEZ PAS QUE VOUS ETES ENFERME...": GOTO 1040 2840 PRINT: PRINT "VOTRE ETAT MENTAL DOIT ATTEINDRE LA COTED'ALERTE A MON AVIS...": GOTO 1040 2849 REM ===== SCIE ===== 2850 IF OB$(7,2)<>"100" THEN PRINT: PRINT "AVEC LES DENTS ?": GOTO 1040 2860 IF M<>16 THEN PRINT: PRINT "CA NE SCIE PAS.":GOTO 1040 2870 IF L<>14 OR OB$(16,2)="-14" THEN PRINT: PRINT "QUEL ";OB$(16,1);" ?": GOTO 1040 2880 IF BA=1 THEN PRINT: PRINT "VOUS L'AVEZ DEJA FAIT !": GOTO 1040 2890 IF FE=0 THEN PRINT: PRINT "VOUS OUBLIEZ DE FAIRE QUELQUE CHOSE...": GOTO 1040 2900 PRINT: PRINT "OK": BA=1: FOR Z=1 TO 1000: NEXT Z: GOTO 670 2909 REM ===== EMB ===== 2910 IF M<>17 THEN PRINT: PRINT "DROLE D'IDEE...":GOTO 1040 2920 IF L<>16 THEN PRINT: PRINT "QUELLE ";OB$(17,1 );" ?": GOTO 1040 2930 PRINT: PRINT "OK": EM=1: GOTO 1040 2939 REM ===== POUSSE APPUIE ===== 2940 IF M<>6 AND M<>24 THEN PRINT: PRINT "CA NE DONNE RIEN.": GOTO 1040 2950 IF M=24 THEN 3010 2960 IF OB$(6,2)="100" OR (OB$(14,2)="9" AND OB$(6,2)="9") THEN PRINT: PRINT "IL NE SE PASSE RIEN.": GOTO 1040 2970 IF VAL(OB$(6,2))<>L THEN PRINT: PRINT "QUEL " ;OB$(6,1);" ?": GOTO 1040 2980 IF L<>9 THEN PRINT: PRINT "IL NE SE PASSE RIEN.": GOTO 1040 2990 PRINT: PRINT "UNE ";OB$(14,1);" ETAIT CACHEE DERRIERE !" 3000 FOR Z=1 TO 1000: NEXT Z: OB$(14,2)="9": GOTO 670 3010 IF L<>12 OR OB$(24,2)="-12" THEN PRINT: PRINT "QUEL ";OB$(24,1);" ?": GOTO 1040 3020 IF OB$(30,2)="12" THEN PRINT: PRINT "IL NE SE PASSE RIEN.": GOTO 1040 3030 OB$(30,2)="12": PRINT: PRINT "CA DECLENCHE L'OUVERTURE D'UN ";OB$(30,1);" !" 3040 FOR Z=1 TO 1500: NEXT Z: GOTO 670 3049 REM ===== LIS ===== 3050 IF M<>10 THEN PRINT: PRINT "CA NE SE LIT PAS.": GOTO 1040 3060 IF OB$(10,2)<>"100" AND VAL(OB$(10,2))<>L THEN PRINT: PRINT "QUEL ";OB$(10,1);" ?": GOTO 1040 3070 IF LE=0 THEN PRINT: PRINT "C'EST ECRIT DANS UNE LANGUE ETRANGE QUI NE RESSEMBLE A RIEN DE CONNU.": GOTO 1040 3080 GOTO 3720 3089 REM ===== MANGE ===== 3090 IF M<>5 THEN PRINT: PRINT "LES HUMAINS ONT DE DROLES D'IDEES !": GOTO 1040 3100 IF OB$(5,2)<>"100" AND VAL(OB$(5,2))<>L THEN PRINT: PRINT "QUEL ";OB$(5,1);" ?": GOTO 1040 3110 PRINT: PRINT "LES POISONS ONT PARFOIS BON GOUT..." 3120 PRINT "CELUI-CI ETAIT PARTICULIEREMENT EFFICACEET VOUS ETES FOUDROYE !" 3130 GOTO 3670 3139 REM ===== DONNE ===== 3140 IF M<>5 THEN PRINT: PRINT "VOUS ETES TRES GENEREUX !": GOTO 1040 3150 IF OB$(5,2)<>"100" THEN PRINT: PRINT "VOUS NE LE PORTEZ PAS AVEC VOUS.": GOTO 1040 3160 IF L<>22 THEN PRINT: PRINT "C'EST TRES GENEREUX DE VOTRE PART.": GOTO 1040 3170 PRINT: PRINT "A QUI ? ";: GOSUB 1200: PRINT 3180 IF LEFT$(OB$(27,1),4)<>LEFT$(R$,4) THEN PRINT : PRINT "LE MOINS QUE L'ON PUISSE DIRE, C'EST QUE VOUSETES GENEREUX !": GOTO 1040 3190 PRINT: PRINT "ILS SE JETTENT DESSUS ! CE SERA LEUR":PRINT "DERNIER REPAS : ILS MEURENT EN POUSSANT DES HURLEMENTS A GLACER UN MORT !" 3200 OB$(5,2)="0": CH=1: NO=NO-1 3210 FOR Z=1 TO 3000: NEXT Z: GOTO 670 3219 REM ===== ATTACHE ===== 3220 IF M<>9 AND M<>12 THEN PRINT: PRINT "CA NE S' ATTACHE PAS.": GOTO 1040 3230 IF (M=9 AND CR=1) OR (M=12 AND DR=1) THEN PRINT: PRINT "C'EST DEJA FAIT.": GOTO 1040 3240 IF OB$(M,2)<>"100" THEN PRINT: PRINT "VOUS NE L'AVEZ PAS.": GOTO 1040 3250 IF L<>14 THEN PRINT: PRINT "VOUS NE POUVEZ PAS L'ATTACHER ICI.": GOTO 1040 3260 PRINT: PRINT "OU ? ";: GOSUB 1200: PRINT 3270 IF LEFT$(R$,4)<>LEFT$(OB$(26,1),4) THEN PRINT : PRINT "VOUS NE POUVEZ PAS L'ATTACHER LA !": GOTO 1040 3280 NO=NO-1 3290 PRINT: PRINT "OK": OB$(M,2)="14": IF M=9 THEN CR=1: GOTO 1040 3300 DR=1: GOTO 1040 3309 REM ===== ALLUME ===== 3310 IF M<>3 THEN PRINT: PRINT "CA NE S'ALLUME PAS." : GOTO 1040 3320 IF OB$(1,2)<>"100" THEN PRINT: PRINT "IMPOSSIBLE : IL N'Y A PAS DE ";OB$(1,1);".": GOTO 1040 3330 IF LA=1 THEN PRINT: PRINT "C'EST DEJA FAIT.": GOTO 1040 3340 LA=1: PRINT: PRINT "OK": GOTO 1040 3349 REM ===== INS ===== 3350 IF M<>10 THEN PRINT: PRINT "VOUS NE POUVEZ PAS.": GOTO 1040 3360 IF OB$(10,2)<>"100" THEN PRINT : PRINT "VOUS NE L'AVEZ PAS AVEC VOUS.": GOTO 1040 3370 IF L<>18 THEN PRINT :PRINT "JE NE VOIS PAS OU VOUS POURRIEZ LE FAIRE";: GOTO 1040 3380 IF LE=1 THEN PRINT: PRINT "VOUS L'AVEZ DEJA FAIT.": GOTO 1040 3390 PRINT: PRINT "OU ? ";: GOSUB 1200: PRINT 3400 IF LEFT$(R$,4)<>LEFT$(OB$(18,1),4) THEN PRINT:PRINT "VOUS NE POUVEZ PAS LE METTRE ICI.": GOTO 1040 3410 PRINT: PRINT "IL EST ASPIRE VERS L'INTERIEUR, ET":PRINT "QUELQUES MINUTES PLUS TARD, IL RESSORT." 3420 LE=1: NO=NO-1 3430 OB$(10,2)="18": FOR Z=1 TO 2000: NEXT Z: GOTO 670 3439 REM ===== VISSE ===== 3440 IF M<>2 THEN PRINT: PRINT "CA NE SE VISSE PAS." : GOTO 1040 3450 IF L<>3 THEN PRINT: PRINT "ON NE PEUT RIEN VISSER ICI.": GOTO 1040 3460 IF AL=0 THEN PRINT: PRINT "ELLE EST DEJA SUR SON SUPPORT.": GOTO 1040 3470 IF OB$(2,2)<>"100" THEN PRINT: PRINT "VOUS NE L'AVEZ PAS AVEC VOUS.": GOTO 1040 3480 PRINT: PRINT "EN LA REVISSANT, VOUS VOUS ELECTROCUTEZ !" 3490 GOTO 3670 3499 REM ===== DETACHE ===== 3500 IF M<>9 AND M<>12 THEN PRINT: PRINT "CA NE SE DETACHE PAS.": GOTO 1040 3510 IF VAL(OB$(9,2))<>L AND OB$(9,2)<>"100" THEN PRINT:PRINT "QUELLE ";OB$(9,1);" ?": GOTO 1040 3520 IF VAL(OB$(12,2))<>L AND OB$(12,2)<>"100" THEN PRINT:PRINT "QUEL ";OB$(12,1);" ?": GOTO 1040 3530 IF M=9 AND CR=0 THEN PRINT: PRINT "ELLE N'EST PAS ATTACHEE.": GOTO 1040 3540 IF M=12 AND DR=0 THEN PRINT:PRINT"IL N'EST PAS ATTACHE.":GOTO 1040 3550 IF L<>14 THEN PRINT: PRINT "VOUS NE POUVEZ PAS LE FAIRE D'ICI.": GOTO 1040 3560 PRINT: PRINT "OK": IF M=9 THEN CR=0: GOTO 1040 3570 DR=0: GOTO 1040 3579 REM ===== ETEINS ===== 3580 IF M<>3 THEN PRINT: PRINT "AH BON ??!": GOTO 1040 3590 IF OB$(3,2)<>"100" THEN PRINT: PRINT "VOUS NE LA PORTEZ PAS SUR VOUS.": GOTO 1040 3600 IF LA=0 THEN PRINT: PRINT "ELLE EST DEJA ETEINTE.": GOTO 1040 3610 PRINT: PRINT "OK": LA=0: GOTO 1040 3619 REM ===== BOIS ==== 3620 IF M<>8 THEN PRINT: PRINT "VOUS DITES N'IMPORTE OUOI !": GOTO 1040 3630 IF OB$(8,2)<>"100" AND VAL(OB$(8,2))<>L THEN PRINT: PRINT "QUELLE ";OB$(8,1);" ?": GOTO 1040 3640 IF FI THEN PRINT: PRINT "ELLE EST CASSEE : IL N'Y A PLUS RIEN": PRINT "DEDANS.": GOTO 1040 3650 PRINT: PRINT "C'ETAIT DE L'ACIDE..." 3660 PRINT "JE VOUS LAISSE DEVINER CE QUI VOUS": PRINT "ARRIVE !" 3670 PRINT: PRINT: PRINT "VOUS AVEZ FAILLI A VOTRE MISSION.":PRINT "LES SORCIERS ONT TRIOMPHE." 3680 PRINT: PRINT "SERIEZ-VOUS PRET A RECOMMENCER ?"; 3690 GET A$ 3700 IF A$="O" THEN CLEAR : GOTO 10 3710 HOME: PRINT "POULE MOUILLEE...": END 3720 HOME 3730 PRINT "C'EST LE TEXTE D'UN SORT !" 3740 PRINT: PRINT "CE SORTILEGE VOUS A PERMIS DE RAYER DE": PRINT "LA SURFACE DE LA TERRE TOUS LES":PRINT "SORCIERS." 3750 PRINT: PRINT: PRINT "VOUS MERITEZ VRAIMENT LE TITRE DE":PRINT "SUPERMAN DU XXI EME SIECLE !" 3760 END 3770 PRINT: PRINT "IL FAIT SI NOIR DANS CETTE ";OB$(14,1): PRINT "QUE VOUS AVEZ TREBUCHE, ET QUE VOUS VOUSETES ROMPU LE COU.": GOTO 3670 3780 PRINT: PRINT "UN ECLAIR VENU DE NULLE PART VOUS FOUD-":PRINT "ROIE. ": GOTO 3670 3790 PRINT: PRINT "LES ";OB$(27,1);" NE FONT QU'UN BOUCHEE DE": PRINT "VOUS !": GOTO 3670 3800 PRINT: PRINT "CET ASCENCEUR N'A PAS DE BOUTON." 3810 PRINT "MAIS IL SE MET EN MARCHE TOUT SEUL !" 3820 PRINT "APRES QUELQUES INSTANTS, IL S'ARRETE ET LA PORTE S'OUVRE SUR... L'ENFER !" 3830 GOTO 3670 3899 REM ===== SUBROUTINE AFFICHAGE DES VERBES ===== 3900 FOR I=1 TO 32 3910 PRINT VE$(I);" "; 3920 NEXT I 3930 PRINT 3940 RETURN