antoine-source/folibus/zx81/res/folibus.bas
2023-11-28 19:50:15 +01:00

825 lines
20 KiB
QBasic

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 \
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