1 REM *********************** 2 REM ** LA MAISON ** 3 REM ** DU PROFESSEUR ** 4 REM ** FOLIBUS ** 5 REM *********************** 6 REM PROGRAMME ECRIT PAR \ ALAIN BREGEON 7 REM LES LIGNES 10 A 6040 \ ET 9000 A 9999 ONT \ ETE REPRODUITES DE L OUVRAGE\ ÀLE PETIT LIVRE DU ZX81À \ (DÀAPRES ÀTHE ZX81 POCKET BOOKÀ\ DE PHIPPS ASSOCIATES) AVEC LÀ\ AUTORISATION DÀEDITIONS DU PSI 8 GOSUB 8699 9 SAVE"FOLIBUSDATAS" 10 DIM S(10) 15 DIM C(5) 20 LET O=20 30 LET SALLE=1 40 DIM P$(2,2) 50 DIM O(O) 60 FOR X=1 TO O 70 LET O(X)=Q(X) 80 NEXT X 90 RAND 100 IF NOT S(2) THEN GOTO 200 110 IF C(2) THEN LET C(2)=C(2)-1 120 IF S(3) THEN GOTO 200 130 PRINT "ON NÀY VOIT RIEN,MIEUX VAUDRAIT","ALLUMER POUR EVITER LES ENNUIS." 140 IF C(3) THEN LET C(3)=C(3)-1 150 GOTO 1000 200 REM DESCRIPTION DE LA SALLE 210 PRINT 220 GOSUB 8000+SALLE*10 300 LET F=0 310 FOR X=1 TO O 320 IF O(X)<>SALLE THEN GOTO 500 330 IF F THEN GOTO 400 340 PRINT ,,"IL Y A AUSSI:" 350 LET F=1 400 PRINT " ";O$(X) 500 NEXT X # 1000 REM ACCEPTATION DE LA COMMANDE 1010 LET T=1 1020 GOTO 2000 1100 IF C(1) THEN LET C(1)=C(1)-1 1110 IF C(4) THEN LET C(4)=C(4)-1 1120 PRINT ,,"QUE FAITES-VOUS? >";SALLE;"(";C(4);")"; 1130 INPUT Y$ 1140 CLS 1150 LET Y=0 1160 PRINT ">";Y$ 1170 LET P$(2)="00" 1200 FOR W=1 TO 2 1210 GOSUB 6000 1220 IF Y>=LEN Y$ THEN GOTO 1300 1230 IF P$(W)="00" THEN GOTO 1210 1240 NEXT W 1300 IF P$(1)<>"00" THEN GOTO 1600 1310 PRINT "PARDON?" 1320 GOTO 100 1600 REM CONTROLE DU MOUVEMENT 1610 LET Z=1 1620 LET T$=M$(SALLE)(Z TO Z+1) 1630 IF T$="00" THEN GOTO 1900 1640 IF T$<>P$(1) THEN GOTO 1700 1650 LET SALLE=VAL(M$(SALLE)(Z+2 TO Z+3)) 1660 GOTO 100 1700 LET Z=Z+4 1710 GOTO 1620 1900 LET T=0 1910 LET CORRESP=0 2000 REM COTROLE DES CONDITIONS 2010 LET CP=0 2100 LET CP=CP+1 2110 IF NOT T THEN GOTO 2300 2120 LET E$=C$(CP) 2130 GOTO 2600 2300 IF CP<=A THEN GOTO 2400 2310 IF CORRESP THEN GOTO 1000 2320 PRINT"IMPOSSIBLE"; 2330 IF VAL(P$(1))<13 THEN PRINT" DE PRENDRE CETTE","DIRECTION"; 2340 PRINT "." 2350 GOTO 100 2400 IF A$(CP)(1 TO 2)<>P$(1) THEN GOTO 2100 2410 LET Y$=A$(CP)(3 TO 4) 2420 IF Y$<>"00" AND Y$<>P$(2) THEN GOTO 2100 2430 LET E$=A$(CP)(5 TO) 2600 REM CONDITIONS 2610 LET E=1 2700 IF E$(E)="." THEN GOTO 3000 2710 LET TYPE=CODE(E$(E))-38 2720 LET N=VAL(E$(E+1 TO E+2)) # 2800 GOSUB 2900+TYPE*10 # 2810 IF NOT OK THEN GOTO 2100 2820 LET E=E+3 2830 GOTO 2700 # A NN: SI NOUS SOMMES DANS LA SALLE NN 2900 LET OK=(N=SALLE) 2905 RETURN # B NN: SI L OBJET NN EST PRESENT OU TRANSPORTE 2910 LET OK=(O(N)=SALLE OR O(N)<0) 2915 RETURN # C NN: SI L OBJET NN EST NON PRESENT OU NON TRANSPORTE 2920 LET OK=(O(N)<>SALLE AND O(N)>=0) 2925 RETURN # D NN: SI L OBJET NN EST TRANSPORTE 2930 LET OK=(O(N)<0) 2935 RETURN # E NN: SI LE POINTEUR NN EST ACTIVE 2940 LET OK=S(N) 2945 RETURN # F NN: SI LE POINTEUR NN N EST PAS ACTIVE 2950 LET OK=(NOT S(N)) 2955 RETURN # G NN: SI LE COMPTEUR NN A ATTEINT LA VALEUR 1 2960 LET OK=(C(N)=1) 2965 RETURN # H NN: SI LE NOMBRE ALEATOIRE (1-99) EST INFERIEUR A NN 2970 LET OK=((INT(RND*100)+1)<=N) 2975 RETURN 3000 REM ACTIONS 3010 LET CORRESP=1 3020 LET E=E+1 3100 IF E$(E)="." THEN GOTO 2100 3110 LET TYPE=CODE(E$(E))-38 3120 IF E$(E+1)<>"." THEN LET N=VAL(E$(E+1 TO E+2)) 3200 LET BREAK=0 ### 3205 PRINT E$(E);";"; 3210 GOSUB 4000+TYPE*100 ### 3220 IF BREAK THEN GOTO BREAK 3230 LET E=E+3 3240 GOTO 3100 # A NN: SI NOUS SOMMES DANS LA SALLE NN ## 4000 GOSUB 2910 ## 4010 RETURN ### B NN : TRANSPORTES OBJETS NN ### OBJET DANS L'INVENTAIRE ## 4100 IF O(N)=-1 THEN GOTO 4110 ## 4102 IF Q(SALLE)=0 THEN GOTO 4110 ## 4103 LET OK=1 ## 4105 RETURN ## 4110 PRINT "UN QUOI?" ## 4120 LET BREAK=100 ## 4130 RETURN 4100 IF S(1)<5 THEN GOTO 4140 4110 PRINT "VOUS NE POUVEZ PORTER PLUS" 4120 LET BREAK=100 4130 RETURN 4140 IF O(N)=-1 THEN GOTO 4180 4150 LET O(N)=-1 4160 LET S(1)=S(1)+1 4170 RETURN 4180 PRINT "VOUS LÀAVEZ DEJA" 4190 GOTO 4120 ### C NN : POSE OBJETS NN 4200 IF O(N)=-1 THEN GOTO 4240 4210 PRINT "VOUS NÀAVEZ PAS ";O$(N) 4220 LET BREAK=100 4230 RETURN 4240 LET O(N)=SALLE 4250 LET S(1)=S(1)-1 4260 RETURN ### D NN : AFFICHE LE MESSAGE EN 7000+(NN*10) 4300 PRINT 4310 GOSUB 7000+N*10 4320 RETURN ### E NN : ACTIVE LE POINTEUR NN 4400 LET S(N)=1 4410 RETURN ### F NN : DESACTIVE LE POINTEUR NN 4500 LET S(N)=0 4510 RETURN ### G NNMM : FIXE LE COMPTEUR (-) NN A MM 4600 LET C(N)=VAL (E$(E+3 TO E+4)) 4610 LET E=E+2 4620 RETURN ### H NN : INVERSE LES LIGNES NN ET NN+1 DANS LE TABEAU OBJET 4700 LET X=O(N) 4710 LET O(N)=O(N+1) 4720 LET O(N+1)=X 4730 RETURN ### I NN : POSE OBJET NN DANS LA SALLE EN COURS 4800 LET O(N)=SALLE 4810 RETURN ### J NN : MET LE NO DE SALLE CONTENANT L OBJET NN A 0 4900 IF O(N)<0 THEN LET S(1)=S(1)-1 4910 LET O(N)=0 4920 RETURN ### K NN : FIXE LE NO DE SALLE EN COURS A LA VALEUR NN 5000 LET SALLE=N 5010 RETURN ### L : AFFICHE D ACCORD ET ATTEND 5100 PRINT "DÀACCORD" ### M : ATTEND UNE NOUVELLE COMMANDE MAIS RESANNE LE TABLEAU DES ACTIONS 5200 LET BREAK=1000 5210 RETURN ### N : ATTEND UNE NOUVELLE COMMANDE 5300 LET BREAK=1100 5310 RETURN ### O : AFFICHE LA DESCRIPTION DE LA SALLE EN COURS 5400 LET BREAK=100 5410 RETURN ### P : ETES VOUS SURE ? >>> STOP 5500 PRINT "ETES VOUS SUR ?"; 5510 INPUT W$ 5520 PRINT W$ 5530 IF CHR$ CODE W$<>"O" THEN RETURN ### Q : STOP 5600 GOTO 9999 ### R : INVENTAIRE ### AFFICHE LA LISTE DES OBJETS TRANSPORTES ### 5700 PRINT 5710 PRINT "VOUS TENEZ:" 5720 LET F=1 5730 FOR X=1 TO O 5740 IF O(X)>=0 THEN GOTO 5770 5750 PRINT " ";O$(X) 5760 LET F=0 5770 NEXT X 5780 IF F THEN PRINT ,"RIEN." 5790 LET BREAK=100 5795 RETURN ### S PRENDRE UN OBJET 5800 IF S(1)<5 THEN GOTO 4140 5810 PRINT "VOUS NE POUVEZ PORTER PLUS" 5820 LET BREAK=100 5830 RETURN 5840 IF O(N)=-1 THEN GOTO 4180 5850 LET O(N)=-1 5860 LET S(1)=S(1)+1 5870 RETURN 5880 PRINT "VOUS LÀAVEZ DEJA" 5890 GOTO 4120 6000 REM ANALYSE LE MOT 6010 DIM W$(4) 6015 LET P$(W)="00" 6020 GOSUB 6600 6025 IF FIN THEN RETURN 6030 FOR Q=1 TO 4 6040 LET W$(Q)=Y$(Y) 6050 GOSUB 6500 6060 IF FIN THEN GOTO 6100 6070 NEXT Q 6080 GOSUB 6500 6090 IF NOT FIN THEN GOTO 6080 6100 IF W$=" " THEN RETURN 6110 FOR Q=1 TO V 6120 IF W$=V$(Q)(3 TO) THEN GOTO 6200 6130 NEXT Q 6140 RETURN 6200 LET P$(W)=V$(Q)(TO 2) 6210 RETURN 6500 LET Y=Y+1 6510 LET FIN=(Y>LEN Y$) 6520 IF FIN THEN RETURN 6530 LET FIN=(Y$(Y)=" ") 6540 RETURN 6600 LET Y=Y+1 6610 LET FIN=(Y>LEN Y$) 6620 IF FIN THEN RETURN 6630 IF Y$(Y)=" " THEN GOTO 6600 6640 RETURN # 7010 PRINT "LA GENERATRICE VIENT DÀEXPLOSER","LA MAISON NÀEXISTE PLUS,VOUS NONPLUS." 7015 RETURN 7020 PRINT "LÀASCENSSEUR NE BOUGE PAS.","IL FAUT PEUT ETRE DU COURANT?" 7025 RETURN 7030 PRINT "LA PORTE VIENT DE SE FERMER","IMPOSSIBLE DE LÀOUVRIR" 7035 RETURN 7040 PRINT "VOUS AVEZ RAISON.LA CURIOSITE","EST UN VILAIN DEFAUT..." 7045 RETURN 7050 PRINT "LÀODEUR QUE VOUS SENTIEZ ETAIT","CELLE DÀUN GAZ EXPLOSIF.VOUS","ETES MORT." 7055 RETURN 7060 PRINT "IL FAUDRAIT PEUT ETRE DU FEU..." 7065 RETURN 7070 PRINT "AH,AH...VOUS ETES PRISONNIER" 7075 RETURN 7080 PRINT "VOUS AVEZ DIT PAPIER?QUEL PAPIER" 7085 RETURN 7090 PRINT "BRAVEZ LES INTERDITS." 7095 RETURN 7100 PRINT "ELLE A LÀAIR DE SÀEMBALLER..." 7105 RETURN 7110 PRINT "LA GENERATRICE SE MET EN MARCHE" 7115 RETURN 7120 PRINT "IMPOSSIBLE,ELLE NE VEUT RIEN","SAVOIR." 7125 RETURN 7130 PRINT "BRAVO,JE NE SAVAIS PAS QUE VOUS","AVIEZ DES DONS DÀELECTRICIEN." 7135 RETURN 7140 PRINT "VOTRE MACHINE EST REPAREE.MAIS","ELLE SENT LE CHAUD." 7145 RETURN 7150 PRINT "LA MACHINE EST REPAREE.DOMMAGE","QUÀIL NÀY AIT PAS DE COURANT." 7155 RETURN 7160 PRINT "IL FAUDRAIT PEUT-ETRE DES OUTILS" 7165 RETURN 7170 PRINT "LÀASCENSEUR SEMBLE MONTER..." 7175 RETURN 7180 PRINT "LÀASCENSEUR NE BOUGE PAS" 7185 RETURN 7190 PRINT "LE CABLE VIENT DE CASSER.VOUS","VOUS ECRASEZ EN BAS:MORT" 7195 RETURN 7200 PRINT "IL FAIT NOIR.IL FAUT ALLUMER" 7205 RETURN 7210 PRINT "VOUS VOUS ECRASEZ AU SOL" 7215 RETURN 7220 PRINT "IL Y A UNE CLEF." 7225 RETURN 7230 PRINT "LA PORTE EST FERMEE A CLEF" 7235 RETURN 7240 PRINT "TIENS,LA PORTE DU PLACARD SE","REFERME." 7245 RETURN 7250 PRINT "LA GENERATRICE VIENT DÀEXPLOSER,","LÀASCENSSEUR EST DETRUIT.VOUS EN","ECHAPPEZ DE JUSTESSE" 7255 RETURN 7260 PRINT "VOUS ETES MORT ELECTROCUTE" 7265 RETURN 7270 PRINT "VOUS AVEZ RAISON,RIEN NE SERT DE COURRIR." 7275 RETURN 7280 PRINT "DEHORS IL FAIT NOIR,ON NE VOIT PAS LE SOL." 7285 RETURN 7290 PRINT "CÀEST DEJA FAIT." 7295 RETURN 7300 PRINT "VOUS ETES AU BOUT DE LA CORDE." 7305 RETURN 7310 PRINT "VRAIMENT PAS AU POINT CETTE","MACHINE.VOUS ETES MORT" 7315 RETURN 7320 PRINT "IL FAUDRAIT PEUT ETRE OUVRIR LA","FENETRE." 7325 RETURN 7330 PRINT "TANT PIS.ON A ESSAYE." 7335 RETURN 7340 PRINT "BRAVO,QUEL TRAIT DE GENIE." 7345 RETURN 7350 PRINT "UNE TRAPPE SÀOUVRE SOUS VOS","PIEDS.VOUS ETES MORT." 7355 RETURN 7360 PRINT "SAGE PRECAUTION." 7365 RETURN 7370 PRINT "CÀEST DU POISON.VOUS ETES MORT." 7375 RETURN 7380 PRINT "VOUS APPRENEZ A PILOTER UNE","SOUCOUPE EN 1 LECON" 7385 RETURN 7390 PRINT "CA NE SE PILOTE PAS COMME CA" 7395 RETURN 7400 PRINT "CÀEST DE LÀACIDE.VOUS ETES MORT." 7405 RETURN 7410 PRINT "IL Y A DE LÀEAU.VOUS VOUS NOYEZ" 7415 RETURN 7420 PRINT "OUF,VOUS VOUS RETROUVEZ DEHORS.." 7425 RETURN 7430 PRINT "SAIN ET SAUF..." 7435 RETURN 7440 PRINT "CA MARCHE...MAIS IL NÀY AVAIT","PAS ASSEZ DE CARBURANT." 7445 RETURN 7450 PRINT "MAIS,VOUS ETES TOUT BLEU","CE DOIT ETRE LES PILLULES" 7455 RETURN 7460 PRINT "ET IRRADIE.VOUS MOUREZ AU BOUT","DE QUELQUES JOURS" 7465 RETURN 8010 PRINT"VOUS ETES DEVANT UNE MAISON","LA PORTE EST OUVERTE." 8015 RETURN 8020 PRINT"VOUS ETES DANS UN COULOIR,IL Y A UNE PORTE A LÀEST ET UNE PORTE","A LÀOUEST." 8025 RETURN 8030 PRINT"VOUS ETES DANS UN SALON,","IL Y A UNE PORTE A LÀOUEST." 8035 RETURN 8040 PRINT"IL Y A UNE DROLE DÀODEUR." 8045 RETURN 8050 PRINT"IL Y A UNE GROSSE MACHINE QUI","RESSEMBLE A 1 GENERATRICE AVEC","UN BOUTON VERT, UN BOUTON ROUGE","IL Y A UNE PORTE AU NORD." 8055 RETURN 8060 PRINT "UNE MACHINERIE DÀASCENCEUR,UNE","PORTE AU NORD" 8065 RETURN 8070 PRINT "IL Y A PLEIN DE MATERIEL." 8075 RETURN 8080 PRINT "VOUS ETES DANS UN ASCENCEUR.IL Y A UN BOUTON HAUT,UN BOUTON BAS" 8085 RETURN 8090 PRINT "LÀASCENCEUR VIENT DE SÀARRETER." 8095 RETURN 8100 PRINT "LA PIECE EST HUMIDE,IL Y A DES","FILS QUI TRAINENT PAR TERRE IL YA UNE FENETRE ET UNE PORTE AU N." 8105 RETURN 8110 PRINT "LA PORTE VIENT DE SE REFERMER.BONJOUR..COMMENT","ECRIVEZ VOUS CECI EN 4 LETTRES" 8115 RETURN 8120 PRINT "VOUS ETES DANS UNE MACHINE A","REMONTER LE TEMPS 3 BOUTONS:","PASSE,PRESENT ET AVENIR" 8125 RETURN 8130 PRINT "VOUS VOUS RETROUVEZ DANS LE","LABORATOIRE DU PROFESSEUR.IL Y A ";"UNE PORTE EN FER A LÀOUEST"," PORTE AU SUD MARQUE DANGER." 8135 RETURN 8140 PRINT "IL Y A UNE DOUCHE,UN TROU DANS","LE SOL" 8145 RETURN 8150 PRINT "IL Y A UN CUBE NOIR DÀAU MOINS","UNE TONNE,UNE ECHELLE MONTE.UNE","PORTE A LÀEST" 8155 RETURN 8160 PRINT "VOUS ETES DANS UNE BIBLIOTHEQUE" 8165 RETURN 8170 PRINT "VOUS ETES DANS UNE SOUCOUPE SUR","UNE TERRASSE" 8175 RETURN # TABLEAU VOCABULAIRE (72) 8699 LET V=73 8700 DIM V$(73,6) #_________________000000 #_________________123456 #_________________##$$$$ 8701 LET V$(1) ="01N " 8702 LET V$(2) ="01NORD" 8703 LET V$(3) ="02E" 8704 LET V$(4) ="02EST " 8705 LET V$(5) ="03S " 8706 LET V$(6) ="03SUD " 8707 LET V$(7) ="04O" 8708 LET V$(8) ="04OUES" 8709 LET V$(9) ="05H " 8710 LET V$(10)="05MONT" 8711 LET V$(11)="06D " 8712 LET V$(12)="06DESC" 8713 LET V$(13)="07ENTR" 8714 LET V$(14)="07AVAN" 8715 LET V$(15)="05HAUT" 8716 LET V$(16)="06BAS" 8717 LET V$(17)="13LIT" 8718 LET V$(18)="35REGA" 8719 LET V$(19)="14TOUR" 8720 LET V$(20)="14RETO" 8721 LET V$(21)="15PREN" 8722 LET V$(22)="15RAMA" 8723 LET V$(23)="16PAPI" 8724 LET V$(24)="17ALLU" 8725 LET V$(25)="18BOUG" 8726 LET V$(26)="19APPU" 8727 LET V$(27)="19ENFO" 8728 LET V$(28)="20VERT" 8729 LET V$(29)="21ROUG" 8730 LET V$(30)="22OUTI" 8731 LET V$(31)="23OUVR" 8732 LET V$(32)="55DOUC" 8733 LET V$(33)="25PLAC" 8734 LET V$(34)="26PORT" 8735 LET V$(35)="27ASCE" 8736 LET V$(36)="28BRIQ" 8737 LET V$(37)="29REPA" 8738 LET V$(38)="29DEPA" 8739 LET V$(39)="30RIEN" 8740 LET V$(40)="31MACH" 8741 LET V$(41)="32POSE" 8742 LET V$(42)="33QUIT" 8743 LET V$(43)="35DECR" 8744 LET V$(44)="34INVE" 8745 LET V$(45)="36CLEF" 8746 LET V$(46)="31FILS" 8747 LET V$(47)="37CORD" 8748 LET V$(48)="38FENE" 8749 LET V$(49)="39ACCR" 8750 LET V$(50)="40SAUT" 8751 LET V$(51)="39ATTA" 8752 LET V$(52)="41SORT" 8753 LET V$(53)="42FERM" 8754 LET V$(54)="43CECI" 8755 LET V$(55)="44ATTE" 8756 LET V$(56)="45TAPE" 8757 LET V$(57)="46FRAP" 8758 LET V$(58)="47PASS" 8759 LET V$(59)="47AVEN" 8760 LET V$(60)="48PRES" 8761 LET V$(61)="49MET " 8762 LET V$(62)="50AVAL" 8763 LET V$(63)="51GANT" 8764 LET V$(64)="52K" 8765 LET V$(65)="53Q" 8766 LET V$(66)="54Z" 8767 LET V$(67)="49ENFI" 8768 LET V$(68)="56LASE" 8769 LET V$(69)="56PIST" 8770 LET V$(70)="57LIVR" 8771 LET V$(71)="58DEMA" 8772 LET V$(72)="58PILO" 8773 LET V$(73)=" " # TABLEAU SALLES (17) 8799 LET R=18 8800 DIM M$(18,14) #_________________00000000011111 #_________________12345678901234 8801 LET M$(1) ="00" 8802 LET M$(2) ="0204040300" 8803 LET M$(3) ="0405020200" 8804 LET M$(4) ="040200" 8805 LET M$(5) ="0106020300" 8806 LET M$(6) ="0108030500" 8807 LET M$(7) ="00" 8808 LET M$(8) ="030600" 8809 LET M$(9) ="00" 8810 LET M$(10)="011100" 8811 LET M$(11)="00" 8812 LET M$(12)="00" 8813 LET M$(13)="00" 8814 LET M$(14)="021300" 8815 LET M$(15)="05170216011300" 8816 LET M$(16)="041500" 8817 LET M$(17)="061500" 8818 LET M$(18)="00" 8819 LET O=20 # TABLEAU OBJET (20) 8899 DIM Q(20) 8900 DIM O$(21,16) #_________________0000000001111111 #_________________1234567890123456 8901 LET O$(1) ="BRIQUET" 8902 LET O$(2) ="BRIQUET ALLUME" 8903 LET O$(3) ="BOUGIE" 8904 LET O$(4) ="BOUGIE ALLUMEE" 8905 LET O$(5) ="PLACARD" 8906 LET O$(6) ="OUTILS" 8907 LET O$(7) ="PAPIER" 8908 LET O$(8) ="FILS ARRACHES" 8909 LET O$(9) ="FILS REPARES" 8910 LET O$(10)="UNE CORDE" 8911 LET O$(11)="GANTS CAOUTCHOUC" 8912 LET O$(12)="GANTS ENFILES" 8913 LET O$(13)="PILLULE K" 8914 LET O$(14)="PILLULE K AVALEE" 8915 LET O$(15)="PILLULE Z" 8916 LET O$(16)="PILLULE Z AVALEE" 8917 LET O$(17)="PILLULE Q" 8918 LET O$(18)="PILLULE Q AVALEE" 8919 LET O$(19)="PISTOLET LASER" 8920 LET O$(20)="LIVRE" 8921 LET O$(21)=" " 8950 DIM Q(20) 8951 LET Q(1)=2 8952 LET Q(2)=0 8953 LET Q(3)=2 8954 LET Q(4)=0 8955 LET Q(5)=6 8956 LET Q(6)=7 8957 LET Q(7)=3 8958 LET Q(8)=6 8959 LET Q(9)=0 8960 LET Q(10)=10 8961 LET Q(11)=16 8962 LET Q(12)=0 8963 LET Q(13)=13 8964 LET Q(14)=0 8965 LET Q(15)=13 8966 LET Q(16)=0 8967 LET Q(17)=13 8968 LET Q(18)=0 8969 LET Q(19)=13 8970 LET Q(20)=16 8980 LET C=13 8981 LET CP=0 # TABLEAU CONDITIONS (12) # # A NN: SI NOUS SOMMES DANS LA SALLE NN # B NN: SI L OBJET NN EST PRESENT OU TRANSPORTE # C NN: SI L OBJET NN EST NON PRESENT OU NON TRANSPORTE # D NN: SI L OBJET NN EST TRANSPORTE # E NN: SI LE POINTEUR NN EST ACTIVE # F NN: SI LE POINTEUR NN N EST PAS ACTIVE # G NN: SI LE COMPTEUR NN EST ATTEINT LA VALEUR 1 # H NN: SI LE NOMBRE ALEATOIRE (1-99) EST INFERIEUR A NN # ### COMPTEURS: ### G1: ### G4: VIE GENERATRICE. 9000 DIM C$(13,21) #________________000000000111111111122 #________________123456789012345678901 9001 LET C$(1)="A04E05.D05Q." 9002 LET C$(2)="E04F10.G0403E10." 9003 LET C$(3)="G04A10.G0499F09D25." 9004 LET C$(4)="A04F05.D20." 9005 LET C$(5)="E06F10.G0405E10." 9006 LET C$(6)="G04.D01Q." 9007 LET C$(7)="A10E09.D26Q." 9008 LET C$(8)="A10E07.F06F07F04F08." 9009 LET C$(9)="A11F07.G0103E07." 9010 LET C$(10)="A11G01.D35Q." 9011 LET C$(11)="A12.F06F04." 9012 LET C$(12)="A12.F08F05F07." 9013 LET C$(13)=".N." 9014 LET A=92 # TABLEAU ACTIONS (91) # A : AFFICHE LA LISTE DES OBJETS TRANSPORTES # A NN : DANS LA SALLE NN # B NN : TRANSPORTES OBJETS NN # C NN : POSE OBJETS NN # D NN : AFFICHE LE MESSAGE EN 7000+(NN*10) # E NN : ACTIVE LE POINTEUR NN # F NN : DESACTIVE LE POINTEUR NN # G NNMM : FIXE LE COMPTEUR (-) NN A MM # H NN : INVERSE LES LIGNES NN ET NN+1 DANS LE TABEAU OBJET # I NN : POSE OBJET NN DANS LA SALLE EN COURS # J NN : MET LE NO DE SALLE CONTENANT L OBJET NN A 0 # K NN : FIXE LE NO DE SALLE EN COURS A LA VALEUR NN # L : AFFICHE D ACCORD ET ATTEND # M : ATTEND UNE NOUVELLE COMMANDE MAIS LE TABLEAU DES ACTIONS EST REPASSE EN REVUE # N : ATTEND UNE NOUVELLE COMMANDE # O : AFFICHE LA DESCRIPTION DE LA SALLE EN COURS # P : ETES VOUS SURE ? >>> STOP # Q : STOP # E01: # E02: # E03: BRIQUET ALLUME. # E04: FENETRE. # E05: FEU ALUMME/PILULE Z. # E06: GENERATRICE. # E07: LIVRE LU. # E08: CLEF PLACARD/PILULE K. # E09: ASCENSSEUR OK. # E10: PIEGE ELECTRIQUE. # E11: 9100 DIM A$(92,31) #_________________0000000001111111111222222222233 #_________________1234567890123456789012345678901 9101 LET A$(1) ="0700A01.D03K02O." 9102 LET A$(2) ="3000A01.D04O." 9103 LET A$(3) ="1528B01.S01L." 9104 LET A$(4) ="1518B03.S03L." 9105 LET A$(5) ="1718B03C01.D06N." 9106 LET A$(6) ="1718B01B03.H03E05E03L." 9107 LET A$(7) ="1728B01.H01E05E03L." 9108 LET A$(8) ="3400.R00." 9109 LET A$(9) ="3300.P00." 9110 LET A$(10)="3500.O00." 9111 LET A$(11)="3218B03.C03L." 9112 LET A$(12)="3228B01.C01L." 9113 LET A$(13)="1316D07.D07N." 9114 LET A$(14)="1516B07.S07D22N." 9115 LET A$(15)="1316C07.D08N." 9116 LET A$(16)="1416C07.D08N." 9117 LET A$(17)="1416D07.D09N." 9118 LET A$(18)="1416D07.D09N." ### GENERATRICE (BOUTONS) ### VERT 9119 LET A$(19)="1920A05F06F04.E04D11D10N." ### ROUGE 9120 LET A$(20)="1921A05F06F04.D11E03E06N." 9121 LET A$(21)="1921A05E04.D12N." 9122 LET A$(22)="1536A03F08.E08L." 9123 LET A$(23)="2325A06F08.D23N." 9124 LET A$(24)="2325A06E08C06.K07F08O." 9125 LET A$(25)="1522A07B06.S06D24K06L." 9126 LET A$(26)="2325A06E08B06.K06N." ### REPARE MACHINERIE 9127 LET A$(27)="2931A06D06E04B08.D13E07H08N." 9128 LET A$(28)="2931A06D06E04B08.D14E07H08N." 9129 LET A$(29)="2931A06D06F04F06B08.D15H08E07N." 9130 LET A$(30)="2931A06C06B08.D16N." ### ASCENSSEUR 9131 LET A$(31)="0500A08E07E06.D17K09O." 9132 LET A$(32)="0500A08F07F08.D18E08N." 9133 LET A$(33)="0600A08F07F08.D18E08N." 9134 LET A$(34)="0500A08F08F06.D18E08N." 9135 LET A$(35)="0600A08F08F06.D18E08N." 9136 LET A$(36)="0500A08E08.D19Q." 9137 LET A$(37)="0600A08F08.D19Q." 9138 LET A$(38)="0600A08E07E06.D19Q." ### ASCENSSEUR HAUT 9139 LET A$(39)="4100A09.E09K10O." 9140 LET A$(40)="0600A09.D19Q." 9141 LET A$(41)="3000A09.D27N." ### FENETRE/CORDE 9142 LET A$(42)="2338A10F04.E04L." 9143 LET A$(43)="2338A10E04.D29N." 9144 LET A$(44)="4238A10E04.F04L." 9145 LET A$(45)="4238A10F04.D29N." 9146 LET A$(46)="3937A10E04F06.E06L." 9147 LET A$(47)="0600A10E06.E08D30N." ### SAUT 9148 LET A$(48)="4000A10E07.D21Q." 9149 LET A$(49)="4000A10E04.D21Q." 9150 LET A$(50)="4000A10F04.D32N." 9151 LET A$(51)="0500A10E08.F08D33N." 9152 LET A$(52)="4400A09.D27N." ### MOT DE PASSE 9153 LET A$(53)="4300A11.D34K12O." 9154 LET A$(54)="4543A11.D34K12O." 9155 LET A$(55)="4643A11.D34K12O." 9156 LET A$(56)="3222B06.C06L." ### MACHINE A REMONTER LE TEMPS 9157 LET A$(57)="1947A12.D31Q." 9158 LET A$(58)="1948A12.K13O." 9159 LET A$(59)="4951B11F04.E04H11D36N." 9160 LET A$(60)="0400A13F04.D26Q." 9161 LET A$(61)="0400A13E04.F04K14O." ### PILLULES ## Q=MORT 9162 LET A$(62)="5053B17.D37Q." ## Z=E05 (IRRADIEE) 9163 LET A$(63)="5054F05B15.E05H15L." 9164 LET A$(64)="5054E05.D29N." ## K=E08 (VITAMINES) 9165 LET A$(65)="5052F08B13.E08H13L." 9166 LET A$(66)="5052E08.D29N." ### 9167 LET A$(67)="1552B13.S13L." 9168 LET A$(68)="1553B17.S17L." 9169 LET A$(69)="1554B15.S15L." 9170 LET A$(70)="3252B13.C13L." 9171 LET A$(71)="3253B17.C17L." 9172 LET A$(72)="3254B15.C15L." ### PISTOLET LASER 9173 LET A$(73)="1556B19.S19L." 9174 LET A$(74)="3256B19.C19L." ### 9175 LET A$(75)="0300A13.E06K15O." ### LIVRE 9176 LET A$(76)="1557B20.S20L." 9177 LET A$(77)="3257B20.C20L." 9178 LET A$(78)="1357B20F07.D38E07N." 9179 LET A$(79)="1357B20E07.D29N." ### GANT 9180 LET A$(80)="1551B11.S11L." 9181 LET A$(81)="3251B11.C11L." 9182 LET A$(82)="5800A17F07.D39N." 9183 LET A$(83)="5800A17E07.D44D21O." ### SORTIE 9184 LET A$(84)="1555A14F05.D40Q." 9185 LET A$(85)="1555A14E06E05F08.F06F05L." 9186 LET A$(86)="0600A14F08.D41Q." 9187 LET A$(87)="1555A14E06E05E08.F06L." 9188 LET A$(88)="0600A14E08F05F06.D42D43Q." 9189 LET A$(89)="0600A14E08E05E06.D42D45D46Q." 9190 LET A$(90)="0600A14E08E05F06.D42D43D45Q." 9191 LET A$(91)="0600A14E08F05E06.D42D46Q." 9192 LET A$(92)=".N." 9193 RETURN 9200 GOSUB 8699 9205 FOR A=1 TO 91 9210 LET O=VAL(A$(A)(1 TO 2)) 9215 GOSUB 9500 9216 LPRINT A;"=";E$;" "; 9220 LET O=VAL(A$(A)(3 TO 4)) 9225 GOSUB 9500 9226 LPRINT E$,":"; 9230 FOR B=5 TO 30 9231 LET E$=A$(A)(B) 9233 IF E$>="A" AND E$(1)<="K" THEN LET B=B+2 9234 LPRINT E$(1); 9235 IF E$<>" " THEN NEXT B 9236 LPRINT 9240 NEXT A 9500 LET E$="" 9501 IF O=0 THEN RETURN 9505 FOR Z=1 TO 73 9510 IF O<>VAL(V$(Z)(1 TO 2)) THEN NEXT Z 9520 LET E$=V$(Z)(3 TO ) 9530 RETURN