alzan pour Sharp PC1500 ( pas de programme )
tir du magazine Hebdogiciel N50

	Perdu dans une ville, saurez-vous en sortir indemne? Heureusement pour vous, Alzan est situ  l'intrieur d'un Sharp PC1500 et les morts prochains qu'il aura sur sa conscience ne seront que symboliques...
	Alzan est un jeu d'aventure dont le but est de sortir d'une ville.

Mode d'emploi :
	RUN <ENTER> prsentation et dbut du jeu.
- lorsque le ? apparait, c'est  l'utilisateur de jouer.
- le dialogue avec le PC se fait  l'aide d'au plus, deux mots spars par un espace ( ex : ouvrir coffre )
- pour vous diriger, vous disposez des commandes : N->Nord, E->Est, S->Sud, O->Ouest, H->haut et B->Bas.
- deux commandes particulires vous permettent de faire le bilan de votre situation : I->inventaire et REGARDER->lorsque l'utilisateur ne sait plus o il en est.
Un conseil : ne pas se pourvoyer tout de suite dans les dtails, dcouvrez plutt la ville dans son ensemble.

Programme :
5 REM alzan: jeu d'aventures sur PC1500
10 REM copyright christophe & jacques bergerot
20 REM programme pour hebdogiciel
30 REM fixation des conditions de jeu
40 WAIT 100:R=26:O=14:V=43:A=77:C=13
50 DIM S(11),C(3),P$(2)*4,O(O),Q(O),O$(O)*20,M$(0)*18,C$(0)*32
52 DIM W$(4)*2,E$(0)*30
55 FOR X=1 TO O:READ Q(X),O$(X):NEXT X
80 RO=1:FOR X=1 TO O:O(X)=Q(X):NEXT X
100 IF S(2)=0 GOTO 220
120 IF S(3)<>0 GOTO 220
130 BEEP 1:PRINT "il fait noir...lumire?"
150 GOTO 1e3
220 BEEP 1:GOSUB (8e3+10*RO)
300 F=0
310 FOR X=1 TO O
320 IF O(X)<>RO GOTO 500
330 IF F<>0 GOTO 400
340 PRINT "il y a:"
350 F=1
400 PRINT O$(X)
500 NEXT X
1000 T=1:RESTORE 12010
1020 GOTO 2010
1100 IF C(1)<>0 LET C(1)=C(1)-1
1105 IF C(2)<>0 AND S(3)=1 LET C(2)=C(2)-1
1110 IF C(3)<>0 LET C(3)=C(3)-1
1120 BEEP 2:INPUT Y$
1150 Y=0
1170 P$(2)="00"
1200 FOR W=1 TO 2
1210 GOSUB 6e3
1220 IF Y>=LEN(Y$) GOTO 1300
1230 IF P$(W)="00" GOTO 1210
1240 NEXT W
1300 IF P$(1)<>"00" GOTO 1600
1310 PRINT "pardon??"
1320 GOTO 100
1600 RESTORE 11010:FOR X=1 TO RO:READ M$(0):NEXT X
1610 Z=1
1620 T$=MID$(M$(0,Z,2)
1630 IF T$="00" GOTO 1900
1640 IF T$<>P$(1) GOTO 1700
1650 RO=VAL(MID$(M$(0),Z+2,2))
1660 GOTO 100
1700 Z=Z+4
1710 GOTO 1620
1900 T=0:RESTORE 13010
1910 MA=0
2010 CP=0
2100 READ C$(0):CP=CP+1
2110 IF T=0 GOTO 2300
2120 E$(0)=C$(0)
2130 GOTO 2610
2300 IF CP<=A GOTO 2400
2310 IF MA<>0 GOTO 1e3
2320 BEEP 1:PRINT "vous ne pouvez pas"
2330 IF VAL(P$(1))>13 PRINT " aller par l"
2350 GOTO 100
2400 IF MID$(C$(0),1,2)<>P$(1) GOTO 2100
2410 Y$=MID$(C$(0),3,2)
2420 IF Y$<>"00" AND Y$<>P$(2) GOTO 2100
2430 E$(0)=MID$(C$(0),5,LEN(C$(0))-4)
2610 E=1
2700 IF MID$(E$(,E,1)="." THEN 3010
2710 TY=ASC(MID$(E$(0),E,1))-65
2720 N=VAL(MID$(E$(0),E+1,2))
2802 GOSUB(2900+10*TY)
2810 IF OK=0 GOTO 2100
2820 E=E+3
2830 GOTO 2700
2900 IF N=RO LET OK=1:RETURN
2910 IF O(N)=RO OR O(N)<0 LET OK=1:RETURN
2911 OK=0:RETURN
2920 IF O(N)<>RO AND O(N)>=0 LET OK=1:RETURN
2921 OK=0:RETURN
2930 IF O(N)<0 LET OK=1:RETURN
2931 OK=0:RETURN
2940 OK=S(N):RETURN
2950 IF S(N)=0 LET OK=1:RETURN
2951 OK=0:RETURN
2960 IF C(N)=1 LET OK=1:C(N)=0:RETURN
2961 OK=0:RETURN
2970 IF RND 100<=N LET OK=1:RETURN
2971 OK=0:RETURN
3010 MA=1:E=E+1
3100 IF MID$(E$(0),E,1)="." GOTO 2100
3110 TY=ASC(MID$(E$(0),E,1))-65
3120 IF MID$(E$(0),E+1,1)<>"." LET N=VAL(MID$(E$(0),E+1,2))
3200 BR=0
3210 GOSUB (4e3+100*TY)
3220 IF BR=100 OR BR=1e3 OR BR=1100 GOTO BR
3230 E=E+3
3240 GOTO 3100
4000 BEEP 1:PRINT "vous tenez:"
4020 F=1
4030 FOR X=1 TO O
4040 IF O(X)>=0 GOTO 4070
4050 PRINT O$(X):F=0
4070 NEXT X
4080 IF F<>0 PRINT "rien"
4095 BR=100:RETURN
4100 IF S(1)<5 GOTO 4140
4110 BEEP 1:PRINT "vous ne pouvez porter plus"
4120 BR=100
4130 RETURN
4140 IF O(N)=-1 GOTO 4180
4150 O(N)=-1
4160 S(1)=S(1)+1
4170 RETURN
4180 BEEP 1:PRINT "vous l'avez dj"
4190 GOTO 4120
4200 IF O(N)=-1 GOTO 4240
4210 BEEP 1:PRINT "vous n'avez pas de",O$(N)
4220 BR=100
4230 RETURN
4240 O(N)=RO
4250 S(1)=S(1)-1
4260 RETURN
4300 BEEP 1:GOSUB (7e3+10*N):RETURN
4400 S(N)=1:RETURN
4500 S(N)=0:RETURN
4600 C(N)=VAL(MID$(E$(0),E+3,2))
4610 E=E+2
4620 RETURN
4700 X=O(N)
4710 O(N)=O(N+1)
4720 O(N+1)=X
4730 RETURN
4800 O(N)=RO:RETURN
4900 IF O(N)<0 LET S(1)=S(1)-1
4910 O(N)=0
4920 RETURN
5000 RO=N
5010 RETURN
5100 BEEP 1:PRINT "d'accord"
5200 BR=1e3
5210 RETURN
5300 BR=1100
5310 RETURN
5400 BR=100
5410 RETURN
5500 BEEP 1:INPUT "tes-vous sur",W$(1)
5530 IF LEFT$(W$(1),1)<>"o" LET E=E-2:RETURN
5600 END
5990 REM saisie des 4 premires lettres
5995 REM des mots introduits
6000 FOR G=1 TO 4:W$(G)="":NEXT G
6015 P$(W)="00"
6020 GOSUB 6600
6025 IF EN<>0 RETURN
6030 FOR Q=1 TO 4
6040 W$(Q)=MID$(Y$,Y,1):W$=W$(1)+W$(2)+W$(3)+W$(4)
6050 GOSUB 6500
6060 IF EN<>0 GOTO 6100
6070 NEXT Q
6080 GOSUB 6500
6090 IF EN=0 GOTO 6080
6100 IF W$=" " RETURN
6110 RESTORE 10010:FOR Q=1 TO V:READ V$
6120 IF W$=MID$(V$,3,LEN V$-2) GOTO 6200
6130 NEXT Q
6140 RETURN
6200 P$(W)=LEFT$(V$,2)
6210 RETURN
6500 Y=Y+1
6510 IF Y>LEN(Y$) LET EN=1
6520 IF EN<>0 RETURN
6530 IF MID$(Y$,Y,1)=" " LET EN=1:GOTO 6540
6535 EN=0
6540 RETURN
6600 Y=Y+1
6610 IF Y>LEN(Y$) LET EN=1:GOTO 6620
6615 EN=0
6620 IF EN=1 RETURN
6630 IF MID$(Y$,Y,1)=" " GOTO 6600
6640 RETURN
7000 REM affichage des actions