Hebdogiciel n°109 à 111



100 ! XLCHATEAU
200 ! PAR HENRY MEZZASALMA
210 RANDOMIZE
220 DIM S(42),M$(40),CB$(42)
230 A$(4)="------":A$(5)="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
240 T1,T2,T3=0:CB$(23)="H"
250 FOR I=6 TO 9:A$(I)=SEG$(A$(5),INTRND(26),1):NEXT
260 PS$=A$(6)&A$(7)&A$(8)&A$(9)
270 DATA ACIER,AZOTE,CLOWN,PERLE,WAGON
280 DATA ACTEUR,DRAGON,EDITER,SOLEIL,WHISKY
290 DATA VEUVE,TISSU,TOTEM,SANTE,LINGE
300 DATA AIGLON,BAUDET,CHEVAL,HOMARD,STUDIO
310 DATA JUGES,GLACE,IMAGE,LOYER,TARIF
320 DATA SATAN,HOMME,GRAND,GEANT,VIGNE
330 DATA ROYALE,AMIRAL,ANIMAL,CHATON,TOMATE
340 DATA AGENDA,BREBIS,DEHORS,FAMINE,SOMMET
350 DATA 1
360 DATA 11,4,8
370 DATA 13,12,10
380 DATA 9,12,14
390 DATA 9,12,5,7,8
400 DATA 1,3,7,4,2
410 DATA 3,5,15,3,2
420 DATA 11,4,4,10,1
430 DATA 13,12,5,4,10
440 DATA 9,5,7,5,14
450 DATA 6,16
460 RESTORE 350
470 FOR Y=1 TO 42:READ S(Y):NEXT
480 RESTORE 270
490 FOR I=1 TO 40:READ M$(I):NEXT
500 DIR$="N"
510 A$(1)=CHR$(160):A$(2)=CHR$(160)&CHR$(160)
520 A$(3)=CHR$(160)&CHR$(160)&CHR$(160)
530 CALL LIGNE
540 CALL CHARD
550 CALL CHATEAU(""):CALL CHAT2
560 CLS "bWW":CALL ECRAN(2,17,1,"1BW",6):CALL ECRAN(2,17,35,"1BW",6)
570 LOCATE (1,1):PRINT "aiiiii":LOCATE (18,1):PRINT "bjjjjj"
580 LOCATE (1,35):PRINT "iiiiib":LOCATE (18,35):PRINT "jjjjja"
590 VIE=60:GAIN=400:CALL TABLEAU(VIE,GAIN)
600 GOSUB 1090:CL$="1Cb":CL1$="1RC":C=1
610 ! DEPART DU JEU
620 GOSUB 1840
630 GOSUB 2670
640 IF C=17 OR C=32 THEN CALL SOLDAT:CALL ECRAN8("1BR"):GOSUB 2390
650 IF C=22 OR C=2 OR C=39 THEN CALL SOLDAT:CALL ECRAN8("1Bb"):GOSUB 2390
660 GOSUB 2430
670 IF CB$(23)<>"G" THEN CALL SALLE(C)
680 IF VIE<1 THEN VIE=0:CB$(23)="H":CALL CHATEAU("VOUS AVEZ PERDU"):STOP
690 IF GAIN<1 THEN GAIN=0:CB$(23)="H":CALL CHATEAU("VOUS AVEZ PERDU"):STOP
700 CALL EFF:CALL COLOR("1RW"):LOCATE (20,15):PRINT "DIRECTION"
710 LOCATE (20,26):ACCEPT SIZE(1)VALIDATE(DIR$),DR$
720 CL$="1Cb":CL1$="1RC"
730 VIE=VIE-1:GAIN=GAIN-2:CALL TABLEAU(VIE,GAIN)
740 GOSUB 1700
750 IF C=1 AND DR$="S"AND CB$(23)="G" THEN CALL CHATEAU("VOUS AVEZ GAGNE"):STOP
760 IF C=1 AND DR$="N" THEN C=C+1:GOTO 1030
770 IF C=2 AND DR$="S" THEN C=C-1:GOTO 1030
780 IF (C=2 OR C=3 OR C=5 OR C=6 OR C=8 OR C=9)AND DR$="E" THEN C=C+1:GOTO 1030
790 IF (C=3 OR C=4 OR C=6 OR C=7 OR C=9)AND DR$="O" THEN C=C-1:GOTO 1030
800 IF (C=3 OR C=4 OR C=6)AND DR$="N" THEN C=C+3:GOTO 1030
810 IF (C=6 OR C=7 OR C=9)AND DR$="S" THEN C=C-3:GOTO 1030
820 IF (C=8 OR C=9)AND DR$="N" THEN C=C+3:GOTO 1030
830 IF (C=10 OR C=12 OR C=13 OR C=14 OR C=15)AND DR$="O" THEN C=C-1:GOTO 1030
840 IF (C=18 OR C=19 OR C=20 OR C=23 OR C=35)AND DR$="O" THEN C=C-1:GOTO 1030
850 IF (C=11 OR C=12 OR C=15 OR C=16 OR C=17)AND DR$="N" THEN C=C+5:GOTO 1030
860 IF (C=19 OR C=20 OR C=21)AND DR$="N" THEN C=C+5:GOTO 1030
870 IF (C=24 OR C=26 OR C=27 OR C=28 OR C=29)AND DR$="E" THEN C=C+1:GOTO 1030
880 IF (C=31 OR C=32 OR C=33 OR C=34)AND DR$="E" THEN C=C+1:GOTO 1030
890 IF (C=36 OR C=37 OR C=38 OR C=39)AND DR$="E" THEN C=C+1:GOTO 1030
900 IF (C=24 OR C=25 OR C=27 OR C=28 OR C=30)AND DR$="N" THEN C=C+5:GOTO 1030
910 IF (C=34 OR C=36 OR C=32)AND DR$="N" THEN C=C+5:GOTO 1030
920 IF (C=24 OR C=25 OR C=26 OR C=29 OR C=30)AND DR$="S" THEN C=C-5:GOTO 1030
930 IF (C=32 OR C=33 OR C=35 OR C=39 OR C=41)AND DR$="S" THEN C=C-5:GOTO 1030
940 IF (C=25 OR C=27 OR C=28 OR C=32 OR C=33)AND DR$="O" THEN C=C-1:GOTO 1030
950 IF (C=34 OR C=37 OR C=38 OR C=39 OR C=40)AND DR$="O" THEN C=C-1:GOTO 1030
960 IF (C=22 OR C=29)AND DR$="O" THEN C=C-1:GOTO 1030
970 IF (C=37)AND DR$="S" THEN C=C-5:GOTO 1030
980 IF (C=11 OR C=12 OR C=13 OR C=14 OR C=17)AND DR$="E" THEN C=C+1:GOTO 1030
990 IF (C=18 OR C=19 OR C=22 OR C=21)AND DR$="E" THEN C=C+1:GOTO 1030
1000 IF (C=12 OR C=13)AND DR$="S" THEN C=C-4:GOTO 1030
1010 IF (C=16 OR C=17 OR C=20 OR C=21 OR C=22)AND DR$="S" THEN C=C-5:GOTO 1030
1020 GOTO 610
1030 B=S(C)
1040 IF B=15 THEN GOSUB 1380:GOTO 1030
1050 IF B=14 THEN GOSUB 1360:GOTO 610
1060 IF B=16 THEN GOSUB 1420:GOTO 610
1070 ON B GOSUB 1090,1120,1140,1160,1180,1200,1220,1240,1260,1280,1300,1320,1340
1080 GOTO 610
1090 ! SALLES DU CHATEAU
1100 DIR$="NS"
1110 CALL ECRAN6:GOSUB 1430:RETURN
1120 DIR$="ONS"
1130 CALL ECRAN6:GOSUB 1430:GOSUB 1460:RETURN
1140 DIR$="NSE"
1150 CALL ECRAN6:GOSUB 1430:GOSUB 1560:RETURN
1160 DIR$="ONE"
1170 CALL ECRAN6:GOSUB 1640:GOSUB 1430:GOSUB 1460:GOSUB 1560:RETURN
1180 DIR$="OSE"
1190 CALL ECRAN6:GOSUB 1660:GOSUB 1460:GOSUB 1560:RETURN
1200 DIR$="S"
1210 CALL ECRAN6:RETURN
1220 DIR$="OE"
1230 CALL ECRAN6:GOSUB 1680:GOSUB 1460:GOSUB 1560:RETURN
1240 DIR$="NO"
1250 CALL ECRAN6:GOSUB 1640:GOSUB 1430:GOSUB 1460:RETURN
1260 DIR$="NE"
1270 CALL ECRAN6:GOSUB 1640:GOSUB 1430:GOSUB 1560:RETURN
1280 DIR$="OS"
1290 CALL ECRAN6:GOSUB 1660:GOSUB 1460:RETURN
1300 DIR$="SE"
1310 CALL ECRAN6:GOSUB 1660:GOSUB 1560:RETURN
1320 DIR$="ONES"
1330 CALL ECRAN6:GOSUB 1430:GOSUB 1460:GOSUB 1560:RETURN
1340 DIR$="E"
1350 CALL ECRAN6:GOSUB 1680:GOSUB 1560:RETURN
1360 DIR$="O"
1370 CALL ECRAN6:GOSUB 1680:GOSUB 1460:RETURN
1380 ! SALLE TRESOR
1390 DIR$="O"
1400 CALL ECRAN6:CL$="1bb":CL1$="1Rb":GOSUB 1460:GOSUB 1560:CALL ROI
1410 GOSUB 2880:RETURN
1420 DIR$="N":CALL ECRAN6:GOSUB 1430:GOSUB 1640:RETURN
1430 ! PORTE NORD
1440 CALL ECRAN(5,8,19,"1Cb",4)
1450 RETURN
1460 ! PORTE OUEST
1470 CALL ECRAN(10,11,10,"1CW",3)
1480 FOR I=1 TO 3:CALL ECRAN(13,15,15+I,"1Rb",3):NEXT
1490 CALL ECRAN3(7,9,9,"1Cb","d")
1500 CALL ECRAN3(13,15,9,"1RC","d")
1510 CALL COLOR("1Cb")
1520 LOCATE (8,12):PRINT A$(1):LOCATE (9,11):PRINT A$(2)
1530 LOCATE (12,10):PRINT A$(3):LOCATE (13,10):PRINT A$(2)
1540 LOCATE (14,10):PRINT A$(1)
1550 RETURN
1560 ! PORTE EST
1570 CALL ECRAN(10,12,29,CL$,3)
1580 FOR I=1 TO 3:CALL ECRAN(13,15,25+I,"1Rb",3):NEXT
1590 CALL ECRAN2(13,15,28,CL1$,"c")
1600 CALL ECRAN2(7,9,28,CL$,"c")
1610 LOCATE (8,29):PRINT A$(1):LOCATE (9,29):PRINT A$(2)
1620 LOCATE (13,30):PRINT A$(2):LOCATE (14,31):PRINT A$(1)
1630 RETURN
1640 ! EFFACE BAS
1650 CALL ECRAN4(10,8,"1bb",24,19):RETURN
1660 ! EFFACE HAUT
1670 CALL ECRAN4(4,1,"1bb",13,19):RETURN
1680 ! EFFACE HAUT ET BAS
1690 CALL ECRAN4(10,8,"1bb",24,19):CALL ECRAN4(4,1,"1bb",13,19):RETURN
1700 ! CHANGEMENT DE SALLE
1710 IF C=42 AND CB$(23)="G"AND DR$="N" THEN C=C-5:GOTO 1030
1720 IF (C=27 OR C=32)AND CB$(23)="G"AND DR$="E" THEN C=C+1:GOTO 1030
1730 IF C=26 AND CB$(23)="G"AND DR$="S" THEN C=C-5:GOTO 1030
1740 IF (C=4 OR C=7 OR C=15)AND CB$(23)="G"AND DR$="O" THEN C=C-1:GOTO 1030
1750 IF C=23 AND CB$(23)="G"AND DR$="O" THEN C=C-1:GOTO 1030
1760 IF (C=20 OR C=25 OR C=35)AND CB$(23)="G"AND DR$="O" THEN C=C-1:GOTO 1030
1770 IF (C=3 OR C=6 OR C=22)AND CB$(23)="G"AND DR$="E" THEN C=C+1:B=14:GOTO 1050
1780 IF (C=14 OR C=19)AND CB$(23)="G"AND DR$="E" THEN C=C+1:B=14:GOTO 1050
1790 IF (C=24 OR C=34)AND CB$(23)="G"AND DR$="E" THEN C=C+1:B=14:GOTO 1050
1800 IF (C=28 OR C=33)AND CB$(23)="G"AND DR$="O" THEN C=C-1:B=13:GOTO 1050
1810 IF C=21 AND CB$(23)="G"AND DR$="N" THEN C=C+5:B=6:GOTO 1050
1820 IF C=37 AND CB$(23)="G"AND DR$="S" THEN C=C+5:B=16:GOTO 1050
1830 RETURN
1840 ! SALLE AUX MONSTRES
1850 IF CB$(23)<>"G" THEN CALL SALLE(C)
1860 CALL EFF
1870 IF (C=3 OR C=6 OR C=9 OR C=12 OR C=19 OR C=36)AND CB$(C)="GAGNE" THEN 1940
1880 IF (C=4 OR C=8 OR C=27 OR C=16 OR C=20)AND CB$(C)="GAGNE" THEN RETURN
1890 IF (C=34 OR C=21 OR C=28 OR C=24 OR C=25)AND CB$(C)="GAGNE" THEN RETURN
1900 IF C=30 AND CB$(C)="GAGNE" THEN RETURN
1910 IF C=3 OR C=6 OR C=9 OR C=12 OR C=36 OR C=19 THEN CALL MONS1:GOTO 1950
1920 IF C=4 OR C=8 OR C=27 OR C=16 OR C=20 OR C=34 THEN CALL MONS2:GOTO 1950
1930 IF C=21 OR C=28 OR C=24 OR C=25 OR C=30 THEN CALL MONS3:GOTO 1950
1940 RETURN
1950 CALL COLOR("0bW"):LOCATE (20,7):PRINT "VOULEZ-VOUS L'ANAGRAMME (O/N) O"
1960 P$="M"
1970 LOCATE (20,37):ACCEPT SIZE(-1)VALIDATE("ON"),OUI$
1980 IF OUI$="N" THEN ZH=3:GOSUB 2260:CALL EFF:RETURN
1990 R=INTRND(40):AB=LEN(M$(R))
2000 A=0:CALL COLOR("0BC"):LOCATE (2,18):PRINT SEG$(A$(4),1,LEN(M$(R)))
2010 FOR I=1 TO AB:A=A+1
2020 T(I)=INTRND(AB)
2030 IF I=1 THEN 2070
2040 FOR D=1 TO I-1
2050 IF T(I)=T(D)THEN 2020
2060 NEXT
2070 LOCATE (2,17+A):PRINT SEG$(M$(R),T(I),1)
2080 NEXT
2090 CALL DISP(20,7,"TAPEZ L'ANAGRAMME-->")
2100 CALL ECRAN(10,16,36,"1YB",4)
2110 A=0
2120 FOR TR=1 TO 50
2130 CALL KEY1(E,F)
2140 IF T1=7 THEN 2180
2150 IF A>LEN(M$(R))-1 THEN 2180
2160 IF F=1 THEN A=A+1:M1$(A)=CHR$(E):GOSUB 2210
2170 NEXT:GOSUB 2350:GOTO 2120
2180 FOR Y=1 TO LEN(M$(R)):MT$(1)=MT$(1)&M1$(Y):NEXT
2190 IF MT$(1)<>M$(R)THEN ZH=3:GOSUB 2230:CALL EFF:GOTO 2220
2200 IF MT$(1)=M$(R)THEN ZH=2:GOSUB 2250:CALL EFF:GOTO 2220
2210 LOCATE (20,26+A):PRINT M1$(A):RETURN
2220 CALL ECRAN(10,16,36,"1BB",4):CALL EFF:MT$(1)="":T1=0:RETURN
2230 CALL DISP(20,10,"VOUS PERDEZ L'ANAGRAMME"):PAUSE 2
2240 VIE=VIE-INTRND(3):GAIN=GAIN-INTRND(10):CALL TABLEAU(VIE,GAIN):GOTO 2270
2250 CALL DISP(20,10,"VOUS GAGNEZ L'ANAGRAMME"):PAUSE 2
2260 ! TIR AU SORT
2270 HZ=INTRND(ZH)
2280 IF HZ=2 THEN 2310
2290 CALL DISP(20,10,"VOUS PERDEZ LE COMBAT"):VIE=VIE-INTRND(5)
2300 GAIN=GAIN-INTRND(10):CALL TABLEAU(VIE,GAIN):PAUSE 2:RETURN
2310 CALL DISP(20,10,"VOUS GAGNEZ LE COMBAT"):VIE=VIE+INTRND(5)+2
2320 GAIN=GAIN+INTRND(10)+3:CALL TABLEAU(VIE,GAIN):PAUSE 2:CALL EFF
2330 IF P$<>"S" THEN CALL ECRAN(11,14,19,"1RB",4)
2340 CB$(C)="GAGNE":RETURN
2350 ! SABLIER
2360 CALL COLOR("1YB"):LOCATE (10+T1,36):PRINT "****"
2370 CALL COLOR("1BY"):LOCATE (10+T1,36):PRINT "****"
2380 T1=T1+1:RETURN
2390 ! SALLE AUX SOLDATS
2400 IF CB$(23)<>"G" THEN CALL SALLE(C)
2410 CALL DISP(20,12,"SALLE AUX ARMES"):PAUSE 2
2420 ZH=3:P$="S":GOSUB 2260:RETURN
2430 ! SALLE AUX TREFLES
2440 IF CB$(23)<>"G" THEN CALL SALLE(C)
2450 IF (C=26 OR C=35 OR C=11 OR C=15)AND CB$(C)="LETTRE" THEN RETURN
2460 IF C=26 OR C=35 THEN CALL TREFLE:CALL ECRAN8("1Bb"):GOTO 2490
2470 IF C=11 OR C=15 THEN CALL TREFLE:CALL ECRAN8("1BR"):GOTO 2490
2480 RETURN
2490 CALL DISP(20,12,"SALLE AUX TREFLES"):PAUSE 2
2500 GS=INTRND(40)+20
2510 CALL DISP(20,7,"LE PRIX A PAYER EST DE "&STR$(GS)&" $")
2520 CALL COLOR("0BW"):LOCATE (21,7):PRINT "VOUS ACCEPTEZ (O/N)? O"
2530 LOCATE (21,28):ACCEPT SIZE(-1)VALIDATE("ON"),OUI$
2540 IF OUI$="N" THEN RETURN
2550 CALL DISP(20,15,"TIR AU SORT"):PAUSE 1:T3=T3+1
2560 HZ=INTRND(2)
2570 IF T3>3 THEN 2620
2580 IF HZ=2 THEN 2620
2590 CALL DISP(20,12,"VOUS PERDEZ AU SORT"):PAUSE 1
2600 VS=INTRND(5):CALL DISP(20,12,"VOUS PERDEZ "&STR$(VS)&" VIE(S)"):PAUSE 1
2610 VIE=VIE-VS:GAIN=GAIN-GS:CALL TABLEAU(VIE,GAIN):RETURN
2620 CALL DISP(20,12,"VOUS GAGNEZ AU SORT"):PAUSE 1
2630 GAIN=GAIN-GS:CALL TABLEAU(VIE,GAIN)
2640 CB$(C)="LETTRE":T2=T2+1
2650 CALL DISP(20,7,"VOICI LA LETTRE NO"&STR$(T2)&" ]->"):CALL COLOR("1RW")
2660 PRINT A$(T2+5):PAUSE 2:RETURN
2670 ! SALLE AUX VALETS
2680 IF CB$(23)<>"G" THEN CALL SALLE(C)
2690 IF (C=41 OR C=10 OR C=5 OR C=31 OR C=40)AND CB$(C)="VENU" THEN RETURN
2700 IF C=41 THEN CALL VALET:CALL ECRAN8("1BR")
2710 IF C=5 OR C=10 OR C=31 OR C=40 THEN CALL VALET:CALL ECRAN8("1Bb"):GOTO 2730
2720 RETURN
2730 CALL DISP(20,12,"SALLE AUX VALETS"):PAUSE 2
2740 CB$(C)="VENU"
2750 GS=INTRND(70):VS=INTRND(15):CALL COLOR("0RW")
2760 LOCATE (20,7):PRINT "VOUS GAGNEZ "&STR$(GS)&" DE GAIN "&STR$(VS)&" DE VIE"
2770 LOCATE (21,5):PRINT "VOULEZ-VOUS LE TIR AU SORT (O/N) O"
2780 LOCATE (21,38):ACCEPT SIZE(-1)VALIDATE("ON"),OUI$
2790 IF OUI$="N" THEN VIE=VIE+VS:GAIN=GAIN+GS:CALL TABLEAU(VIE,GAIN):RETURN
2800 HZ=INTRND(2)
2810 IF HZ=1 THEN 2850
2820 CALL DISP(20,1,"VOUS GAGNEZ AU SORT VOUS DOUBLEZ LA MISE")
2830 VIE=VIE+(VS*2):GAIN=GAIN+(GS*2):CALL TABLEAU(VIE,GAIN)
2840 PAUSE 2:RETURN
2850 CALL DISP(20,1,"VOUS PERDEZ AU SORT LA MISE EST DIVISEE")
2860 VIE=VIE+INT(VS/2):GAIN=GAIN+INT(GS/2):CALL TABLEAU(VIE,GAIN):PAUSE 2
2870 RETURN
2880 ! SALLE DU ROI
2890 CL$="1Cb":CL1$="1RC"
2900 IF CB$(23)<>"G" THEN CALL SALLE(C)
2910 CALL DISP(20,1,"SALLE DU ROI.."):PAUSE 2
2920 LOCATE (20,7):PRINT "AVEZ-VOUS LE MOT DE PASSE (O/N) O"
2930 LOCATE (20,39):ACCEPT VALIDATE("ON")SIZE(-1),OUI$
2940 IF OUI$="N" THEN 3020
2950 CALL EFF
2960 CALL COLOR("0BW"):LOCATE (20,7):PRINT "TAPEZ VOTRE MOT DE PASSE->"
2970 LOCATE (20,34):ACCEPT VALIDATE(UALPHA)SIZE(4),CD$
2980 IF CD$<>PS$ THEN 3020
2990 CB$(23)="G":VIE=VIE+INTRND(20)+2:GAIN=GAIN+5000:CALL TABLEAU(VIE,GAIN)
3000 CALL DISP(20,8,"VOUS EMPORTEZ LE TRESOR"):PAUSE 2
3010 CALL ECRAN(11,14,19,"1RB",4):CALL ECRAN(2,17,35,"1BW",6):GOTO 3040
3020 CALL DISP(20,7,"LE MOT DE PASSE N'EST PAS VALABLE"):PAUSE 1
3030 CALL DISP(20,12,"JE SUIS DESOLE"):PAUSE 1
3040 CALL DISP(20,7,"JE VOUS RENVOIE DANS LE CHATEAU"):PAUSE 1
3050 C=INTRND(41)+12
3060 IF C>41 THEN 3050
3070 RETURN
3080 SUB ECRAN(L1,L2,C,C$,R)
3090 CALL COLOR(C$)
3100 FOR I=L1 TO L2:LOCATE (I,C):PRINT RPT$(CHR$(160),R):NEXT
3110 SUBEND
3120 SUB LIGNE
3130 CALL POKE(50432,162,5,45,162,136,45,10,162,5,45,162,200,45,10)
3140 CALL EXEC(50432)
3150 SUBEND
3160 SUB CHARD
3170 DATA 01020404081020204080,80402020100804040201,80C0E0E0F0F8FCFCFEFF
3180 DATA 010307070F1F3F3F7FFF,80808080808080808080,01010101010101010101
3190 DATA FF010101010101010101,FF808080808080808080,FF,000000000000000000FF
3200 DATA 808080808080808080FF,010101010101010101FF
3210 RESTORE 3170
3220 FOR I=97 TO 108:READ CH$:CALL CHAR(I,CH$):NEXT
3230 DATA 000000000000183C7EFF,DBDBFFFFEFEFEFEFFFFF,FFFFFFFEFEFEFEFFFFFF
3240 DATA DBDBFFFFD7FFD7FFFFFF,6D6DFFFFEBFFEBFFFFFF,FFFFFFFFFFFFFFFFFFFF
3250 DATA FFFFFFFCF0C080808081,FFFFFF3F0F0301010181,83C1C0E0FFF9E9E9E999
3260 DATA C1830307FF2F2F2B2B29
3270 RESTORE 3230
3280 FOR I=37 TO 46:READ CH$:CALL CHAR(I,CH$):NEXT
3290 DATA 3C7EDB99181818181818,003060C0FFFFC0603000,18181818FFFF18181818
3300 DATA 18181818181899DB7E3C,000C0603FFFF03060C00,20202020FF04040404FF
3310 RESTORE 3290
3320 FOR I=3 TO 8:READ CH$:CALL CHAR(I,CH$):NEXT
3330 SUBEND
3340 SUB ECRAN2(L1,L2,C,C$,CA$)
3350 CALL COLOR(C$)
3360 FOR I=L1 TO L2:Y=Y+1:LOCATE (I,C+Y):PRINT CA$:NEXT
3370 SUBEND
3380 SUB ECRAN3(L1,L2,C,C$,CA$)
3390 CALL COLOR(C$)
3400 FOR I=L2 TO L1 STEP -1:Y=Y+1:LOCATE (I,C+Y):PRINT CA$:NEXT
3410 !
3420 SUBEND
3430 SUB ECRAN4(L1,L2,C$,C,D)
3440 CALL COLOR(C$):A$=RPT$(CHR$(160),C)
3450 FOR I=L1 TO L2 STEP -1:LOCATE (I+8,D-I):PRINT SEG$(A$,1,C-Y):Y=Y+2:NEXT
3460 SUBEND
3470 SUB ECRAN5(C$)
3480 CALL COLOR(C$)
3490 LOCATE (4,17):PRINT "hiiiiiig":FOR I=5 TO 7:LOCATE (I,17)
3500 PRINT "e      f":NEXT
3510 LOCATE (8,17):PRINT "kjjjjjjl"
3520 SUBEND
3530 SUB ECRAN6
3540 CALL ECRAN(1,18,7,"1bW",28)
3550 CALL COLOR("1Bb"):LOCATE (2,10):PRINT "N":LOCATE (6,10):PRINT "S"
3560 LOCATE (4,8):PRINT "O":LOCATE (4,12):PRINT "E"
3570 CALL COLOR("1Yb"):LOCATE (3,10):PRINT CHR$(3):LOCATE (4,9)
3580 PRINT CHR$(4)&CHR$(5)&CHR$(7):LOCATE (5,10):PRINT CHR$(6)
3590 CALL ECRAN5("1Bb")
3600 CALL ECRAN2(1,3,13,"1Bb","b")
3610 CALL ECRAN2(9,18,24,"1Bb","b")
3620 CALL ECRAN2(9,18,22,"1Rb","c")
3630 CALL ECRAN3(1,3,24,"1Bb","a")
3640 CALL ECRAN3(9,18,6,"1Bb","a")
3650 CALL ECRAN3(9,18,8,"1Rb","d"):CALL ECRAN4(10,1,"1Rb",22,20)
3660 SUBEND
3670 SUB ECRAN7
3680 LOCATE (11,19):PRINT "mnop":LOCATE (12,19):PRINT "qrst"
3690 LOCATE (13,19):PRINT "uvwx":LOCATE (14,19):PRINT "yz"&CHR$(123)&CHR$(124)
3700 SUBEND
3710 SUB ECRAN8(C$)
3720 CALL COLOR(C$):LOCATE (11,19):PRINT "mnop":LOCATE (12,19):PRINT "qrst"
3730 CALL COLOR("1BR"):LOCATE (13,19):PRINT "uvwx":LOCATE (14,19)
3740 PRINT "yz"&CHR$(123)&CHR$(124)
3750 SUBEND
3760 SUB MONS1
3770 CALL COLOR("1BR")
3780 DATA 0000000003030000F0F0,00000000C0C030300C0C,0000000003030C0C3030
3790 DATA 00000000C0C000000F0F,FCFCC3C3C3C303033F3F,0303F0F06C6C0C0CF0F0
3800 DATA C0C00F0F363630300F0F,3F3FC3C3C3C3C0C0FCFC,C3C3C3C3CCCCC3C3F0F0
3810 DATA FFFF30300F0F0303C0C0,FFFF0C0CF0F0C0C00303,C3C3C3C33333C3C30F0F
3820 DATA CCCCC3C330300C0C0000,00000000C0C030300C0C,0000000003030C0C3030
3830 DATA 3333C3C30C0C30300000
3840 RESTORE 3780
3850 FOR I=109 TO 124:READ CH$:CALL CHAR(I,CH$):NEXT
3860 CALL ECRAN7:CALL ANAG:SUBEND
3870 SUB MONS2
3880 CALL COLOR("1WR")
3890 DATA 00000000303033333F3F,0000000000003333FFFF,0000000000003333FFFF
3900 DATA 0000000030303030F0F0,3F3F0F0F3C3C3C3C3F3F,FFFFFFFFCFCF0F0FFFFF
3910 DATA FFFFFFFFCCCCC0C0FFFF,F0F0C0C0F0F0F0F0F0F0,00000000000000000C0C
3920 DATA FCFCF0F0FFFFCCCC0000,FCFC3C3CFCFCCCCC0000,0000000000000000C0C0
3930 DATA 0C0C0F0F030300000000,3333FFFFFFFF00000000,3333FFFFFFFF00000000
3940 DATA C0C0C0C0000000000000
3950 RESTORE 3890
3960 FOR I=109 TO 124:READ CH$:CALL CHAR(I,CH$):NEXT
3970 CALL ECRAN7:CALL ANAG:SUBEND
3980 SUB MONS3
3990 CALL COLOR("1MR")
4000 DATA 00003F3FFFFFC3C30000,3F3F3030F0F00000F3F3,C0C0FCFC0C0CC0C0CCCC
4010 DATA 0000CFCF3F3FF0F0CCCC,3F3FF0F0C3C3C3C3F3F3,F0F0FFFF3F3FC0C0F0F0
4020 DATA F0F0FFFFFFFFF0F0F0F0,0303FCFCCCCC3333F3F3,F3F303033F3FC0C03C3C
4030 DATA 3F3F3030FFFFC0C0C0C0,FFFFF0F0FFFFF0F00000,CCCCC3C3FCFC33333333
4040 DATA 3333C0C0FFFF3C3C0000,F0F0CFCF0000C0C0FCFC,0000FFFF000003030F0F
4050 DATA C3C303030C0CF0F0C0C0
4060 RESTORE 4000
4070 FOR I=109 TO 124:READ CH$:CALL CHAR(I,CH$):NEXT
4080 CALL ECRAN7:CALL ANAG:SUBEND
4090 SUB SOLDAT
4100 DATA 00000000000000000C0C,00000000000000000303,0000000000000000E0E0
4110 DATA 00000000000000000000
4120 DATA 0C0C0C0C0C0C0C0C0C0C,0F0F0F0F0F0F03030F0F,F0F0F0F0F0F0C0C0F0F0
4130 DATA 00000000000000000000,0C0C3F3F0C0C0F0F0C0C,0F0F33333333C3C30F0F
4140 DATA FCFCC3C3C3C3C3C3F0F0,F0F0FCFCFCFCFCFCF0F0,0C0C0C0C0C0C0C0C0C0C
4150 DATA 0C0C0C0C0C0C0C0C3C3C,30303030303030303C3C,00000000000000000000
4160 RESTORE 4100
4170 FOR I=109 TO 124:READ CH$:CALL CHAR(I,CH$):NEXT
4180 SUBEND
4190 SUB TREFLE
4200 DATA 00000000000000000000,0000000000000F0F3F3F,000000000000E0E0F8F8
4210 DATA 00000000000000000000,000000000F0F3F3F3F3F,3F3F3F3FCFCFF3F3FFFF
4220 DATA F8F8F8F8F3F3CFCFFFFF,00000000C0C0FCFCFCFC,3F3F3F3F0F0F00000000
4230 DATA FFFFF3F3C3C30F0F0F0F,FFFFCFCFC3C3F0F0F0F0,FCFCFCFCF0F000000000
4240 DATA 00000000000000000000,3F3FFFFF000000000000,FCFCFFFF000000000000
4250 DATA 00000000000000000000
4260 RESTORE 4200
4270 FOR I=109 TO 124:READ CH$:CALL CHAR(I,CH$):NEXT
4280 SUBEND
4290 SUB ROI
4300 DATA 00000000000003030C0C,0000000000003333CCCC,0000000000003333CCCC
4310 DATA 0000000000003030CCCC,30303F3F3C3C30303C3C,3030FFFF0000FFFF0C0C
4320 DATA 3030FFFF00000303CCCC,3C3CFCFC0C0CF0F0CCCC,3C3C3F3F0F0F0F0F0303
4330 DATA 00003F3FF0F0FFFFFFFF,3030CFCF0000FFFFFFFF,0C0CF0F0F0F0C0C00000
4340 DATA 00000000000000000000,3F3F0000000000000000,FCFC0000000000000000
4350 DATA 00000000000000000000
4360 RESTORE 4300
4370 FOR I=109 TO 124:READ CH$:CALL CHAR(I,CH$):NEXT
4380 CALL ECRAN8("1BR"):SUBEND
4390 SUB VALET
4400 DATA 0000000003030C0C3333,000000003333CCCC3333,000000003333CCCC3333
4410 DATA 000000003030CCCC3333,0F0F3F3FFFFF3C3C3C3C,FFFFC0C00000FFFF0C0C
4420 DATA FFFF00000000CFCF3030,FFFF3F3F0C0CF3F3C3C3,3C3C3333333330303C3C
4430 DATA 000000000000C0C0C3C3,3030FCFC30300000FFFF,03030F0F0F0F33333333
4440 DATA 03030000000000000000,F0F030300F0F00000000,30300303FCFC00000000
4450 DATA FCFC0000000000000000


4460 RESTORE 4400
4470 FOR I=109 TO 124:READ CH$:CALL CHAR(I,CH$):NEXT
4480 SUBEND
4490 SUB ANAG
4500 CALL COLOR("1Bb"):LOCATE (1,17):PRINT "cjjjjjjd"
4510 CALL COLOR("1BC"):LOCATE (2,18):PRINT "jjjjjj"
4520 CALL COLOR("1bB"):LOCATE (2,17):PRINT "c":LOCATE (2,24):PRINT "d"
4530 SUBEND
4540 SUB TABLEAU(V,G)
4550 CALL COLOR("0RH")
4560 LOCATE (3,2):PRINT "VIE:":LOCATE (4,2):PRINT "VIE:"
4570 LOCATE (6,2):PRINT USING"####",V:LOCATE (7,2):PRINT USING"####",V
4580 CALL COLOR("0bH")
4590 LOCATE (12,2):PRINT "GAIN:":LOCATE (13,2):PRINT "GAIN:"
4600 LOCATE (15,2):PRINT USING"####",G:LOCATE (16,2):PRINT USING"####",G
4610 SUBEND
4620 SUB SALLE(C)
4630 CALL COLOR("1MH")
4640 LOCATE (3,35):PRINT "SALLE":LOCATE (4,35):PRINT "SALLE"
4650 LOCATE (6,35):PRINT USING"###",C:LOCATE (7,35):PRINT USING"###",C
4660 SUBEND
4670 SUB EFF
4680 CALL COLOR("1BW"):FOR I=19 TO 21:LOCATE (I,1):PRINT RPT$(" ",40):NEXT
4690 SUBEND
4700 SUB DISP(L1,L2,C$)
4710 CALL EFF:CALL COLOR("0bW"):LOCATE (L1,L2):PRINT C$;
4720 SUBEND
4730 SUB CHATEAU(C$)
4740 CLS "bCb"
4750 CALL ECRAN(6,21,1,"1YC",40):CALL COLOR("1BCF")
4760 LOCATE (1,3):PRINT SEG$(C$,1,4):LOCATE (3,1):PRINT SEG$(C$,5,11)
4770 FOR Y=1 TO 3:CALL ECRAN(5+Y,5+Y,1,"1CC",14-Y):NEXT
4780 FOR Y=1 TO 3:CALL ECRAN(5+Y,5+Y,26+Y,"1CC",15-Y):NEXT
4790 CALL ECRAN3(9,21,4,"1BY","d"):CALL ECRAN3(6,8,11,"1GC","d")
4800 CALL ECRAN2(9,21,23,"1BY","c"):CALL ECRAN2(6,8,26,"1GC","c")
4810 CALL ECRAN4(0,-2,"1GC",16,13)
4820 CALL ECRAN4(13,1,"1BC",30,19)
4830 CALL COLOR("1BC")
4840 LOCATE (1,16):PRINT "%   ()   %"
4850 LOCATE (2,16):PRINT "' & ** & '"
4860 LOCATE (3,16):PRINT "*&*&**&*&*"
4870 LOCATE (4,16):PRINT "**'*+,*'**"
4880 LOCATE (5,16):PRINT "*'**-.**'*"
4890 CALL COLOR("1Wb"):LOCATE (14,1):PRINT "hiiiiiiiiiiiig"
4900 LOCATE (15,1):PRINT "e            f"
4910 LOCATE (16,1):PRINT "e            f"
4920 LOCATE (17,1):PRINT "e            f"
4930 LOCATE (18,1):PRINT "e            f"
4940 LOCATE (19,1):PRINT "kjjjjjjjjjjjjl"
4950 FOR I=1 TO 2:LOCATE (19+I,2):PRINT CHR$(12):LOCATE (19+I,13)
4960 PRINT CHR$(12):NEXT
4970 CALL COLOR("0YHF"):LOCATE (15,2):PRINT "EXEL-CHATEAU"
4980 LOCATE (16,2):PRINT "EXEL-CHATEAU"
4990 CALL COLOR("0RL"):LOCATE (18,4):PRINT "22KKmm^^"
5000 CALL COLOR("1WB"):LOCATE (9,20):PRINT "fe"
5010 LOCATE (12,20):PRINT CHR$(19)&CHR$(31)
5020 LOCATE (13,20):PRINT CHR$(19)&CHR$(31)
5030 FOR I=18 TO 21:LOCATE (I,20):PRINT "**":NEXT
5040 A$=KEY$:SUBEND
5050 SUB CHAT2
5060 CLS "bCb":CALL COLOR("1BW")
5070 FOR Y=1 TO 18:LOCATE (Y,1):PRINT RPT$(CHR$(8),40):NEXT
5080 CALL ECRAN(19,21,1,"1GC",40)
5090 CALL ECRAN4(13,11,"1BC",30,19)
5100 CALL ECRAN3(19,21,5,"1BG","d"):CALL ECRAN2(19,21,32,"1BG","c")
5110 CALL ECRAN(4,18,13,"1CB",16):A$=CHR$(12)
5120 CALL COLOR("1RB"):FOR I=4 TO 5:LOCATE (I,13):PRINT RPT$(A$,16):NEXT
5130 FOR I=6 TO 18:LOCATE (I,13):PRINT A$:LOCATE (I,28):PRINT A$:NEXT
5140 FOR I=6 TO 11:LOCATE (I,14):PRINT A$:LOCATE (I,27):PRINT A$:NEXT
5150 LOCATE (6,15):PRINT A$&A$&A$:LOCATE (6,24):PRINT A$&A$&A$
5160 LOCATE (7,15):PRINT A$&A$:LOCATE (7,25):PRINT A$&A$
5170 CALL COLOR("1BC"):FOR I=8 TO 18:LOCATE (I,16):PRINT "*":LOCATE (I,25)
5180 PRINT "*":NEXT
5190 FOR I=6 TO 18:LOCATE (I,19):PRINT "*":LOCATE (I,22):PRINT "*":NEXT
5200 CALL COLOR("1RH"):LOCATE (1,15):PRINT "EXEL-CHATEAU"
5210 LOCATE (2,15):PRINT "EXEL-CHATEAU"
5220 CALL COLOR("1BW"):FOR I=6 TO 8:LOCATE (I,4):PRINT "*":LOCATE (I,33)
5230 PRINT "*":LOCATE (I,8):PRINT "*":LOCATE (I,37):PRINT "*":NEXT
5240 FOR I=4 TO 10:LOCATE (I,5):PRINT "*":LOCATE (I,34):PRINT "*"
5250 LOCATE (I,7):PRINT "*":LOCATE (I,36):PRINT "*":NEXT
5260 FOR I=3 TO 11:LOCATE (I,6):PRINT "*":LOCATE (I,35):PRINT "*":NEXT
5270 CALL COLOR("1BC"):FOR I=5 TO 9:LOCATE (I,6):PRINT " ":LOCATE (I,35)
5280 PRINT " ":NEXT:LOCATE (7,5):PRINT "   ":LOCATE (7,34):PRINT "   "
5290 B$=KEY$
5300 FOR I=18 TO 9 STEP -1:LOCATE (I,16):PRINT " ":LOCATE (I,19):PRINT " "
5310 LOCATE (I,22):PRINT " ":LOCATE (I,25):PRINT " ":NEXT
5320 CALL COLOR("0bC")
5330 CALL AFF(9,17,"VOULEZ"):CALL AFF(11,18,"VOUS"):CALL AFF(13,18,"LES")
5340 CALL AFF(15,17,"REGLES"):CALL AFF(17,17,"(O/N)")
5350 B$=KEY$
5360 IF B$="" THEN 5350
5370 IF B$<>"O"AND B$<>"N" THEN 5350
5380 IF B$="O" THEN CALL ECRAN(9,18,15,"0CR",12):CALL REGLE:GOTO 5060
5390 CALL ECRAN(9,18,15,"0CR",12)
5400 CALL COLOR("0RC")
5410 CALL AFF(9,18,"VOUS"):CALL AFF(11,17,"N'AUREZ"):CALL AFF(13,17,"JAMAIS")
5420 CALL AFF(15,18,"MON"):CALL AFF(17,17,"TRESOR")
5430 B$=KEY$:SUBEND
5440 SUB AFF(L1,L2,C$)
5450 LOCATE (L1,L2):PRINT C$:SUBEND
5460 SUB REGLE
5470 CLS "bGG":CALL COLOR("0BH"):LOCATE (1,9):PRINT "LE COMTE D'EXEL-CHATEAU"
5480 LOCATE (2,9):PRINT "LE COMTE D'EXEL-CHATEAU"
5490 CALL COLOR("0bG"):PRINT TAB(12);"PRESENTE LES REGLES"
5500 PRINT:PRINT "  LE BUT DU JEU CONSISTE A DEROBER MON"
5510 PRINT "TRESOR.POUR CELA VOUS DEVEZ COMBATTRE"
5520 PRINT "MONSTRES,ET GARDES QUI VEILLENT A MA "
5530 PRINT "SECURITE.MON TRESOR SE TROUVE SALLE 23.."
5540 PRINT:PRINT "-COMBAT DES MONSTRES: POUR COMBATTRE "
5550 PRINT "CEUX-CI,VOUS POUVEZ CHOISIR L'OPTION "
5560 PRINT "ANAGRAMME,PAR CE FAIT VOUS AUREZ PLUS DE"
5570 PRINT "POUVOIR POUR VAINCRE.MAIS ATTENTION,SI"
5580 PRINT "VOUS NE TROUVEZ PAS LE MOT,VOUS PERDEZ"
5590 PRINT "DES VIES ET DE L'ARGENT.LE MOT DE L'ANA-"
5600 PRINT "-GRAMME SE TROUVE AU DESSUS DU MUR NORD"
5610 PRINT "UN TEMPS LIMITE VOUS EST ALLOUE."
5620 PRINT "LORSQU'UN MONSTRE EST VAINCU IL":PRINT "DISPARAIT DE LA SALLE"
5630 GOSUB 6070
5640 CLS "bGG":CALL COLOR("0BH"):LOCATE (1,13):PRINT "SALLE AUX TREFLES"
5650 LOCATE (2,13):PRINT "SALLE AUX TREFLES"
5660 CALL COLOR("0bG"):PRINT:PRINT "POUR POUVOIR EMPORTER LE TRESOR,VOUS"
5670 PRINT "DEVEZ DONNER(DANS LA SALLE DU ROI)LE"
5680 PRINT "MOT DE PASSE QUI DONNE DROIT AU TRESOR."
5690 PRINT "CE MOT DE PASSE EST FORME DE QUATRE"
5700 PRINT "LETTRES,QUE VOUS DONNERONT LES TREFLES."
5710 PRINT "MAIS POUR AVOIR UNE DE CES LETTRES,IL"
5720 PRINT "FAUDRA PAYER UNE FORTE SOMME.ET APRES UN"
5730 PRINT "TIR AU SORT VOUS POUVEZ ACQURERIR LES"
5740 PRINT "QUATRE LETTRES QUI FORMERONT LA FORMULE."
5750 PRINT "        LES TREFLES SE TROUVENT"
5760 PRINT "        SALLES:..11....15....26....35"
5770 GOSUB 6070
5780 CLS "bGG":CALL COLOR("0BH"):LOCATE (1,13):PRINT "SALLE AUX VALETS"
5790 LOCATE (2,13):PRINT "SALLE AUX VALETS"
5800 CALL COLOR("0bG"):PRINT "  LORSQUE VOUS ETES EN PRESENCE DES "
5810 PRINT "VALETS VOUS POUVEZ TOUCHER DE L'ARGENT"
5820 PRINT "ET DES VIES.VOUS POUVEZ AUSSI GRACE "
5830 PRINT "AU TIR AU SORT,DOUBLER VOS GAINS ET VIES"
5840 PRINT "OU EN PERDRE LA MOITIE."
5850 PRINT:PRINT "IL N'Y A QUE 4 TREFLES DANS LE"
5860 PRINT "CHATEAU,ILS N'APPARAISSENT QU'UNE FOIS"
5870 PRINT "DANS LEURS SALLES"
5880 GOSUB 6070
5890 CLS "bGG":CALL COLOR("0BH"):LOCATE (1,13):PRINT "SALLE AUX SOLDATS"
5900 LOCATE (2,13):PRINT "SALLE AUX SOLDATS"
5910 CALL COLOR("0bG"):PRINT:PRINT " LORSQUE VOUS RENCONTREZ UN SOLDAT VOUS"
5920 PRINT "VOUS POUVEZ QUE COMBATTRE,MEME SI VOUS"
5930 PRINT "GAGNEZ,LE SOLDAT NE DISPARAIT PAS DE LA"
5940 PRINT "SALLE":GOSUB 6070
5950 CLS "bGG":CALL COLOR("0BH"):LOCATE (1,13):PRINT "SALLE DU ROI....."
5960 LOCATE (2,13):PRINT "SALLE DU ROI....."
5970 CALL COLOR("0bG"):PRINT:PRINT "QUAND VOUS AVEZ DONNE LE BON MOT DE"
5980 PRINT "PASSE,VOUS EMPORTEZ LE TRESOR.MAIS"
5990 PRINT "ATTENTION SI LE MOT DE PASSE EST FAUX,"
6000 PRINT "JE VOUS RENVOIE DANS LE CHATEAU..."
6010 PRINT " PAR CONTRE SI LE MOT DE PASSE EST"
6020 PRINT "TROUVE,JE VOUS RENVOIE DANS LE"
6030 PRINT "CHATEAU ET JE FERME QUELQUES SALLES.VOUS"
6040 PRINT "VOUS DEVEZ RETROUVER LA SORTIE(SALLE 1)"
6050 PRINT:PRINT:PRINT "                   BONNE CHANCE":GOSUB 6070
6060 SUBEXIT
6070 CALL COLOR("1RC"):LOCATE (21,9):PRINT "APPUYEZ SUR UNE TOUCHE"
6080 B$=KEY$:RETURN
6090 SUBEND

Ce listing est uniquement proposé pour un usage privé.
Sans accord écrit préalable, vous n'êtes pas autorisé à le distribuer, le transmettre ou le rediffuser.