mirror of
https://github.com/antoinevignau/source.git
synced 2025-01-07 07:29:49 +00:00
825 lines
20 KiB
QBasic
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 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
|
|
|