10 REM 20 REM CASINO 30 REM 35 DIM KA%(8),KB%(8),KC%(8),OB$(9),OB%(9,8): DIM SO%(13),EQ%(5),ENC%(2),WIZ%(21) 36 DIM OP%(15),OP$(15),OQ$(15),UT%(3) 37 FOR I = 1 TO 15: FOR J = 1 TO 15:OQ$(I) = OQ$(I) + " ": NEXT J:OP$(I) = OQ$(I): NEXT I 38 CO% = 0: DEF FN IDP(X) = 0.5 * (X + ABS (X)) 40 CALL 16408:A = USR (1):A = USR (2): & WINDOW24,16,8,24: HOME : GOSUB 40000:A = USR (1): GOSUB 26100: & MODE1,0 200 DIM X(11),Y(11) 500 A = USR (1) 510 GOSUB 4000:A = USR (1) 520 & NOISE18,6,8: & SOUND30,8: & NOISE18,6,8: & SOUND30,8 530 & OU8,3: INVERSE : PRINT SPC( 8): & OU8,4: PRINT " CASINO ": & OU8,5: PRINT SPC( 8): NORMAL 540 & OU3,8: PRINT "Bienvenu au casino": & OU3,9: PRINT "de CAIUS D{ d'Or !" 550 & OU2,11: PRINT "A quoi veux-tu jouer,": & OU2,12: PRINT "noble aventurier?" 560 & OU2,14: INVERSE : PRINT "1";: NORMAL : PRINT " Jeu de la Sorci}re" 570 & OU2,16: INVERSE : PRINT "2";: NORMAL : PRINT " Jeu du Troll" 580 & OU2,18: INVERSE : PRINT "3";: NORMAL : PRINT " Jeu de l'Apprenti" 590 & OU2,20: INVERSE : PRINT "4";: NORMAL : PRINT " Quitter" 600 GET A$:A2% = VAL (A$): IF A2% < 1 OR A2% > 4 THEN 600 610 GOSUB 4000: & SET0: IF A2% = 4 THEN GOSUB 40200: & RUN "T",20480 612 & OU5,10: PRINT "R}gles (O/N)?";: GET A$: & SET1 615 IF A$ = "O" THEN GOSUB 4000: GOSUB 5000 617 GOSUB 9000: IF RT = 2 THEN 500 620 ON A2% GOTO 1000,2000,3000 1000 REM 1010 REM JEU DE LA SORCIERE 1020 REM 1040 F = 0:T = 0:N = 1 1050 I = 1 1060 GOSUB 4000: & SET0: & OU7,1: PRINT "TABLEAU: ";: INVERSE : PRINT N: NORMAL : & SET1 1070 FOR X = 1 TO 22:A = INT ( RND (1) * N * 4): & OUX,20 - A: PRINT "%": & OUX,22: & SET0: PRINT CHR$ (127): & SET1 1080 FOR Y = 21 - A TO 21: & NOISE4,5,9: & OUX,Y: PRINT "&": NEXT Y 1090 NEXT X 1100 X = 1:Y = 1 1110 IF X = 22 THEN I = - 1 1112 IF X > 1 THEN 1140 1115 & SCRN1,Y + 1,A%: IF A% = 165 THEN 1390 1120 I = 1: & OUX,Y: PRINT " ":Y = Y + 1 1140 IF Y = 22 THEN 1420 1150 X = X + I 1160 & SCRNX,Y,A%: IF A% = 165 THEN 1390 1170 IF I = 1 AND X = 1 THEN & OUX,Y: PRINT "#": GOTO 1200 1180 IF I = 1 THEN & OUX - 1,Y: PRINT " #": GOTO 1200 1190 & OUX,Y: PRINT "$ " 1200 & NOISE2,3,4 1210 IF F = 1 THEN 1270 1220 IF PEEK (49152) < > 160 THEN 1110 1230 & NOISE100,1,1 1240 POKE 49152,0: POKE 49168,0 1250 IF Y = 21 THEN 1110 1260 F = 1:L = Y + 1:C = X: GOTO 1300 1270 & OUC,L: PRINT " ":L = L + 1 1280 IF L > 21 THEN F = 0: GOTO 1110 1300 & SCRNC,L,A%: IF A% < > 165 THEN & OUC,L: PRINT "'": GOTO 1110 1310 & NOISE10,10,10:F = 0 1330 FOR J = L TO L + 2 1340 IF J < 22 THEN & OUC,J: PRINT " " 1350 NEXT J:L = L + 2 1360 IF L > = 21 THEN 1110 1370 & OUC,L + 1: PRINT "%" 1380 GOTO 1110 1390 & NOISE10,60,10: & NOISE10,50,10 1395 IF X > 1 THEN & OUX - 1,Y: PRINT " " 1400 FOR I = Y TO 21: & OUX,I - 1: PRINT " ": & OUX,I: PRINT "1": NEXT I 1401 IF N = 1 OR N = 2 THEN GP% = GP% - MI: GOSUB 26100: GOSUB 4000: & SET0: & OU2,10: PRINT "Vous perdez la mise!": & SET1: GOTO 1410 1402 IF N = 3 THEN GOSUB 4000: & SET0: & OU2,10: PRINT "Vous r{cup{rez votre": & OU6,11: PRINT "mise.": & SET1: GOTO 1410 1403 GP% = GP% + (MI * 2): GOSUB 26100: GOSUB 4000: & SET0: & OU2,10: PRINT "Vous gagnez ";MI * 2" P.O.": & SET1 1410 WAIT - 16384,128: POKE - 16368,0: GOTO 500 1420 & SOUND100,2: & SOUND70,2 1425 IF N < = 4 THEN GOSUB 4000: & OU8,20: & SET0: PRINT "": & SET1 1430 IF PEEK (49152) < > 160 THEN 1430 1440 POKE 49152,0: POKE 49168,0:N = N + 1 1445 IF N = 5 THEN & SET0: GOSUB 4000: & OU4,8: PRINT "FELICITATION !!": & OU4,10: PRINT "Vous avez gagner": & OU8,11: PRINT MI * 4" P.O.":GP% = GP% + MI * 4: GOSUB 26100: & SET1: GET A$: GOTO 500 1450 GOTO 1050 2000 REM 2010 REM JEU DU TROLL 2020 REM 2030 X(1) = 1:X(2) = - 1:X(3) = 0:X(4) = 0 2040 Y(1) = 0:Y(2) = 0:Y(3) = 1:Y(4) = - 1 2050 GOSUB 4000 2060 & SET0: & SOUND2,2: & OU5,22: PRINT "Un moment...": & SET1 2070 FOR I = 1 TO 55 2080 X = INT ( RND (1) * 20) + 2:Y = INT ( RND (1) * 18) + 3 2090 & SCRNX,Y,A%: IF A% < > 160 THEN 2080 2100 IF (X = 10 AND Y = 3) OR (X = 10 AND Y = 4) THEN 2080 2110 & NOISE5,2,6: & OUX,Y: PRINT "2": NEXT I 2120 & OU5,22: & SET0: PRINT SPC( 12): & SET1 2130 FOR I = 1 TO 21: & NOISE10,0,10: & OUI,2: PRINT ")": & OU22 - I,22: PRINT ")": & OU1,22 - I + 1: PRINT ")": & OU22,I + 1: PRINT ")": NEXT I 2140 & OU11,3: PRINT "(":X = 11:Y = 21: & OUX,Y: PRINT "!" 2150 E = 0 2160 P = 0 2170 FOR I = 1 TO 4: & SCRNX + X(I),Y + Y(I),A%: IF A% = 178 OR A% = 169 THEN P = P + 1 2180 NEXT I 2190 & SET0: & OU2,1: PRINT "PIEGES:"; STR$ (P) 2200 & OU12,1: PRINT "ESSAIS:"; STR$ (E): & SET1 2210 WAIT - 16384,128:K = PEEK ( - 16384): POKE - 16368,0 2220 IF K = 149 THEN IX = 1:IY = 0: GOTO 2270 2230 IF K = 136 THEN IX = - 1:IY = 0: GOTO 2270 2240 IF K = 138 THEN IX = 0:IY = 1: GOTO 2270 2250 IF K = 139 THEN IX = 0:IY = - 1: GOTO 2270 2260 GOTO 2210 2270 & MUSIC1,1,5: & OUX,Y: PRINT CHR$ (34) 2280 X = X + IX:Y = Y + IY 2290 & SCRNX,Y,A%: IF A% = 178 OR A% = 169 THEN 2330 2300 IF A% = 168 THEN 2340 2310 & OUX,Y: PRINT "!" 2320 E = E + 1: GOTO 2160 2330 & NOISE1,30,100:A = 1: GOTO 2350 2340 & SOUND1,1: & SOUND1,4: & SOUND1,2:A = 0 2350 FOR I = 2 TO 21 2360 FOR J = 3 TO 21 2370 & SCRNI,J,A%: IF A% = 178 THEN & OUI,J: PRINT ")": & NOISE6,6,7 2380 NEXT J 2381 NEXT I 2385 IF A = 1 OR E > = 70 THEN GP% = GP% - MI: GOSUB 26100: GOSUB 4000: & SET0: & OU2,10: PRINT "Vous perdez la mise!": & SET1: GOTO 2390 2386 GP% = GP% + (MI * 2): GOSUB 26100: GOSUB 4000: & SET0: & OU2,10: PRINT "Vous gagnez ";MI * 2" P.O.": & SET1 2390 WAIT - 16384,128: POKE - 16368,0: GOTO 500 3000 REM 3010 REM JEU DE L'APPRENTI 3020 REM 3030 GOSUB 4000: & SET1 3040 F = 0:E = 0 3050 A$ = ".0..0..0..0..0..0..0..": & NOISE3,5,10: & OU1,1: PRINT A$: & NOISE3,5,10: & OU1,22: PRINT A$ 3060 A$ = "/0///0///0///0///0//": FOR I = 1 TO 20: & OU1,I + 1:B$ = MID$ (A$,I,1): PRINT B$: & OU22,I + 1: PRINT B$: NEXT I 3070 X = INT ( RND (1) * 8) + 2 3080 Y = INT ( RND (1) * 18) + 2 3090 & OUX,Y: PRINT "-": & OUX,Y + 1: PRINT "," 3100 V = INT ( RND (1) * 8) + 9 3110 W = INT ( RND (1) * 14) + 2 3120 & OUV,W: PRINT "0....0" 3130 FOR I = W + 1 TO W + 4: & OUV + 5,I: PRINT "/": NEXT I 3140 & OUV,W + 5: PRINT "0....0" 3150 W = W + 1 3160 N = 5 + INT ( RND (1) * 6) 3170 FOR I = 1 TO N + 1 3180 & NOISE5,2,8 3190 X(I) = INT ( RND (1) * 9) + 2 3200 Y(I) = INT ( RND (1) * 19) + 2 3210 & SCRNX(I),Y(I),A%: IF A% < > 160 THEN 3190 3220 IF I < = N THEN & OUX(I),Y(I): PRINT "*": GOTO 3240 3230 X = X(I):Y = Y(I): & OUX(I),Y(I): PRINT "+" 3240 NEXT I 3250 WAIT - 16384,128: POKE - 16368,0:K = PEEK (49152) 3260 IF K = 13 THEN E = E + 1: GOTO 3340 3270 & OUX,Y: PRINT " " 3280 IF K = 8 THEN & SCRNX - 1,Y,A%: IF A% = 160 THEN X = X - 1: & MUSIC1,1,5 3290 IF K = 21 THEN & SCRNX + 1,Y,A%: IF A% = 160 THEN X = X + 1: & MUSIC1,1,5 3300 IF K = 11 THEN & SCRNX,Y - 1,A%: IF A% = 160 THEN Y = Y - 1: & MUSIC1,1,5 3310 IF K = 10 THEN & SCRNX,Y + 1,A%: IF A% = 160 THEN Y = Y + 1: & MUSIC1,1,5 3320 & OUX,Y: PRINT "+" 3330 GOTO 3250 3340 & OU7,22: & SET0: PRINT "Essai:"; STR$ (E);: & SET1 3345 J = 1 3350 F = 0 3360 FOR I = 1 TO N: & OUX(I),Y(I): PRINT " ": & NOISE3,3,4 3370 IF X(I) < V OR X(I) > V + 4 THEN 3430 3380 IF Y(I) < W OR Y(I) > W + 3 THEN 3430 3390 F = F + 1 3400 & SCRNX(I) + 1,Y(I),A%: IF A% < > 160 THEN 3540 3410 X(I) = X(I) + 1 3420 GOTO 3540 3430 AX = X(I):AY = Y(I) 3440 IF Y < Y(I) THEN Y(I) = Y(I) + 1 3450 IF Y > Y(I) THEN Y(I) = Y(I) - 1 3460 IF Y(I) = AY AND Y(I) = 2 THEN Y(I) = Y(I) + 1 3470 IF Y(I) = AY AND Y(I) = 21 THEN Y(I) = Y(I) - 1 3480 IF X(I) = AX AND X(I) = 2 THEN X(I) = X(I) + 1: GOTO 3520 3490 IF X(I) = AX AND X(I) = 21 THEN X(I) = X(I) - 1: GOTO 3520 3500 IF X < X(I) THEN X(I) = X(I) + 1 3510 IF X > X(I) THEN X(I) = X(I) - 1 3520 & SCRNX(I),Y(I),A%: IF A% = 160 THEN 3540 3530 X(I) = AX:Y(I) = AY 3540 & OUX(I),Y(I): PRINT "*" 3550 NEXT I 3560 IF F = N THEN 3590 3570 IF J < 5 THEN J = J + 1: GOTO 3350 3580 GOTO 3250 3590 REM END 3595 IF E > = 14 THEN GP% = GP% - MI: GOSUB 26100: GOSUB 4000: & SET0: & OU2,10: PRINT "Vous perdez la mise!": & SET1: GOTO 3600 3596 GP% = GP% + (MI * 2): GOSUB 26100: GOSUB 4000: & SET0: & OU2,10: PRINT "Vous gagnez ";MI * 2" P.O.": & SET1 3600 GET A$: GOTO 500 4000 HOME : & WINDOW1,22,1,23: & CLS: & SET0: & WINDOW0,40,0,24: RETURN 4010 & OU7,22: INVERSE : PRINT "";: NORMAL : GET A$: & OU7,22: PRINT SPC( 8): & OU0,21: RETURN 5000 REM 5001 REM REGLES DES JEUX 5002 REM 5005 A = USR (3): & SET0: & WINDOW1,22,1,23: ON A2% GOTO 5014,5270,5540 5014 PRINT " JEU DE LA SORCIERE": PRINT 5015 PRINT "Vous ~tes une sorci}re"; 5020 PRINT "sur un balai (";: & SET1: PRINT "#";: & SET0: PRINT ") et"; 5030 PRINT "vous devez vous poser"; 5040 PRINT "sur le sol pour satis-"; 5050 PRINT "faire un besoin natu-"; 5060 PRINT "rel urgent non r{so-"; 5070 PRINT "luble par magie! Or le"; 5080 PRINT "lieu d'atterrissage"; 5090 PRINT "est en feu. Vous devez"; 5100 PRINT "donc envoyer des bou-"; 5110 PRINT "les d'eau afin d'arr~-"; 5120 PRINT "ter l'incendie. Pour"; 5130 PRINT "cel@, appuyez sur la"; 5140 PRINT "barre d'espacement. Le"; 5150 PRINT "balai descend r{guli}-"; 5160 PRINT "rement et pour ne pas"; 5170 PRINT "vous scratcher,il faut"; 5180 PRINT "{teindre toutes les": GOSUB 4010 5190 PRINT "flammes : ";: & SET1: PRINT "%" 5200 PRINT " &": & SET0 5210 PRINT "Si vous r{ussissez 2"; 5220 PRINT "tableaux, vous r{cup{-"; 5230 PRINT "rez votre mise. Le"; 5240 PRINT "3i}me tableau double"; 5250 PRINT "votre mise et le 4i}me"; 5260 PRINT "la multiplie par 4.": GOTO 6000 5270 PRINT " LE JEU DU TROLL": PRINT 5280 PRINT "Vous ~tes un Troll (";: & SET1: PRINT "!";: & SET0: PRINT ")"; 5290 PRINT "et vous voulez vous"; 5300 PRINT "approprier un coffre"; 5310 PRINT "cachant un tr{sor (";: & SET1: PRINT "(";: & SET0: PRINT ")."; 5320 PRINT "Mais le terrain envi-"; 5330 PRINT "ronnant est truff{ de"; 5340 PRINT "pi}ges (";: & SET1: PRINT ")";: & SET0: PRINT ") cach{s."; 5350 PRINT "Seuls ceux du bord"; 5360 PRINT "sont visibles. Pour"; 5370 PRINT "vous aider @ y parve-"; 5380 PRINT "nir, votre instinct"; 5390 PRINT "vous donne le nombre"; 5400 PRINT "de pi}ges qui se trou-"; 5410 PRINT "vent dans les 4 direc-"; 5420 PRINT "tions possibles. Le"; 5430 PRINT "d{placement se fait"; 5440 PRINT "avec les fl}ches. Les"; 5450 PRINT "cases que vous avez": GOSUB 4010 5460 PRINT "parcourues sans risque"; 5470 PRINT "apparaissent en: ";: & SET1: PRINT CHR$ (34);: & SET0: PRINT "." 5480 PRINT "Il faut atteindre le"; 5490 PRINT "coffre en moins de 70"; 5500 PRINT "coups pour multiplier"; 5510 PRINT "par 2 la mise. En cas"; 5520 PRINT "d'{chec, la mise est"; 5530 PRINT "perdue.": GOTO 6000 5540 PRINT " LE JEU DE L'APPRENTI": PRINT 5550 PRINT "Vous ~tes un apprenti"; 5560 PRINT "magicien (";: & SET1: PRINT "+";: & SET0: PRINT ") au servi-"; 5570 PRINT "ce d'un puissant ar-"; 5580 PRINT "chimage : ";: & SET1: PRINT "-" 5590 PRINT " ,": & SET0 5600 PRINT "Votre t_che consiste @"; 5610 PRINT "renvoyer les d{mons"; 5620 PRINT "invoqu{s (";: & SET1: PRINT "*";: & SET0: PRINT ") par votre"; 5630 PRINT "ma`tre dans un enclos."; 5640 PRINT "Sachant que ces der-"; 5650 PRINT "niers ne cherchent"; 5660 PRINT "qu'@ s'{loigner de"; 5670 PRINT "vous, il vous faudra"; 5680 PRINT "vous placer au bon en-"; 5690 PRINT "droit (avec les fl}-"; 5700 PRINT "ches) et appuyer sur"; 5710 PRINT "la touche return pour"; 5720 PRINT "valider votre mouve-": GOSUB 4010 5730 PRINT "ment. Une fois dans"; 5740 PRINT "l'enclos, les d{mons"; 5750 PRINT "ne bougent plus. "; 5760 PRINT "Pour multiplier votre"; 5770 PRINT "mise par 2, il faut"; 5780 PRINT "r{ussir l'op{ration en"; 5790 PRINT "moins de 14 coups."; 5800 PRINT "Pour un nombre de"; 5810 PRINT "coups sup{rieur, vous"; 5820 PRINT "perdez la mise." 6000 PRINT : GOSUB 4010:A = USR (2): RETURN 9000 REM INPUT 9010 MI$ = "": GOSUB 4000: & SET0 9015 & OU3,8: PRINT "Vous avez ";GP%;" P.O." 9020 & MODE1,1: & OU5,10: PRINT "Votre mise:"; 9030 GET A$ 9040 IF A$ = CHR$ (13) AND MI$ = "" THEN 9030 9045 IF A$ = CHR$ (13) AND VAL (MI$) > = 1 AND VAL (MI$) < = GP% THEN RT = 1: GOTO 9200 9050 IF A$ = CHR$ (27) THEN RT = 2: GOTO 9200 9060 IF A$ < > CHR$ (127) THEN 9100 9070 IF LEN (MI$) = 0 THEN & NOISE1,5,20: GOTO 9020 9080 IF LEN (MI$) = 1 THEN MI$ = "": & OU16,10: PRINT " ": & OU16,10: GOTO 9030 9090 MI$ = LEFT$ (MI$, LEN (MI$) - 1): & OU16,10: PRINT MI$;" ": & OU16 + LEN (MI$),10: GOTO 9030 9100 A = ASC (A$): IF A < 48 OR A > 57 THEN 9030 9110 IF A = 48 AND LEN (MI$) = 0 THEN 9030 9120 IF LEN (MI$) = 3 THEN & NOISE1,5,20: GOTO 9030 9150 MI$ = MI$ + A$: & OU16,10: PRINT MI$;: GOTO 9030 9200 & SET1:MI = VAL (MI$): & MODE1,0: RETURN 26100 REM MISE A JOUR 26105 P% = PEEK (37): & SET0: & WINDOW24,16,8,24 26110 VTAB 2: HTAB 2: PRINT NM$; 26120 VTAB 3: HTAB 2: PRINT "Vit:"; 26130 HTAB 9: PRINT "Mag:"; 26140 VTAB 4: HTAB 2: PRINT "Arg:"; 26150 VTAB 5: HTAB 2: PRINT "Exp:"; 26190 GOTO 26205 26200 P% = PEEK (37) 26205 VTAB 3: HTAB 6: PRINT " ";: HTAB 6: PRINT FN IDP(KC%(5)); 26210 HTAB 13: PRINT KC%(6);" "; 26220 VTAB 4: HTAB 6: PRINT GP%;" "; 26230 VTAB 5: HTAB 6: PRINT XP%;" "; 26240 VTAB 7: HTAB 2: PRINT SPC( 14) 26245 IF CO% = 0 THEN VTAB 6: HTAB 2: PRINT SPC( 14): GOTO 26270 26260 VTAB 7: HTAB 2: & ST(CO%) 26270 & WINDOW0,40,0,24: VTAB P% + 1: HTAB 1 26300 RETURN 40000 REM CHARGE PLAYER 40010 A = USR (0): & READ "PLAYER": INPUT NM$,NA%,NM%,CY%,CX%,CL%,RA%,NJ% 40020 FOR I = 1 TO 8: INPUT KA%(I),KB%(I),KC%(I): NEXT I 40030 INPUT GP%,XP%,WZ%: FOR I = 1 TO 21: INPUT WIZ%(I): NEXT I 40040 FOR I = 1 TO 4: INPUT EQ%(I): NEXT I: INPUT ENC%(1),ENC%(2),OB% 40050 IF OB% = 0 THEN 40070 40060 FOR I = 1 TO OB%: INPUT OB$(I): FOR J = 1 TO 8: INPUT OB%(I,J): NEXT J: NEXT I 40070 FOR I = 1 TO 15: INPUT SO%(1),SO%(2),SO%(3),SO%(4),SO%(5):A = USR (1): & ESPELLI,SO%(1),SO%(2),SO%(3),SO%(4),SO%(5):A = USR (0): NEXT I 40080 POKE 826,NA%: POKE 827,NM%: POKE 828,NM%: POKE 837,NA%: POKE 23,CY%: POKE 24,CX%: POKE 16432,CL% 40085 A = USR (1): & MODE1,1: HTAB 25: VTAB 24:A = USR (0) 40090 & END : RETURN 40200 REM SAUVE JEU 40205 A = USR (0):V% = 2: GOSUB 40520 40210 A$ = "PLAYER": & DEL A$: & DEF A$,4: & PRINT A$: PRINT NM$: PRINT PEEK (837): PRINT PEEK (827): PRINT PEEK (23): PRINT PEEK (24): PRINT CL%: PRINT RA%: PRINT NJ%: FOR I = 1 TO 8: PRINT KA%(I): PRINT KB%(I): PRINT KC%(I): NEXT I 40220 PRINT GP%: PRINT XP%: PRINT WZ%: FOR I = 1 TO 21: PRINT WIZ%(I): NEXT I: FOR I = 1 TO 4: PRINT EQ%(I): NEXT I: PRINT ENC%(1): PRINT ENC%(2): PRINT OB% 40225 IF OB% = 0 THEN 40240 40230 FOR I = 1 TO OB%: PRINT OB$(I): FOR J = 1 TO 8: PRINT OB%(I,J): NEXT J: NEXT I 40240 FOR I = 1 TO 15:A = USR (1): & LSPELLI,SO%(1),SO%(2),SO%(3),SO%(4),SO%(5):A = USR (0): PRINT SO%(1): PRINT SO%(2): PRINT SO%(3): PRINT SO%(4): PRINT SO%(5): NEXT I 40300 & END : RETURN 40500 REM CHERCHE FACE 40510 CALL 16408:A = USR (1): & FACEV%,V% 40520 A = USR (0): & READ "FACE": INPUT A: & END 40530 IF A < > V% THEN PRINT "Ins{rez la face "V%" SVP.";: GET A$: PRINT : GOTO 40520 40540 RETURN