10 '====================================
20 ' 30 ' JEU DE YAM A 5 COLONNES 40 ' 50 ' par Joel Vernet 60 ' 70 ' 8 rue gambetta 60100 NOGENT sur OISE34' 80 '==================================== 85 RANDOMIZE TIME 90 DEFINT a-z:CLS:MODE 1 100 LOCATE 15,10:PRINT"JEU DE YAM":LOCATE 14,12:PRINT"A 5 COLONNES":LOCATE 18,20:PRINT"par Joel Vernet" 110 DIM dt(5),dr(5),tb(38),c(5,81),flagm(5),flagd(5),nomjou$(5),svdt(5),ff(12),finjou(5) 120 DIM ray(60),son(5),svnomjou(5),svc(5) 130 GOSUB 5660 140 LOCATE 5,25:PRINT"Voulez vous les regles ?(o/n)" 150 DECi$=INKEY$:IF DECi$="" THEN 150 160 IF INKEY(34)>=0 THEN GOSUB 6340 170 GOSUB 5740:jou=0 180 GOSUB 5890:GOTO 6000 190 '========jeu de l'AMSTRAD======== 200 CLS #1:GOSUB 4930 210 GOSUB 2680 220 CLS #6:CLS #5:LOCATE #5,5,1:PRINT #5,"Je reflechis..." 230 deci$="" 240 '---------choix de l'AMSTRAD------ 250 ON ne1 GOTO 360,590,790,900 260 'ne1=0:tous les des sont differents 270 IF somde=15 OR somde=20 THEN GOSUB 990:IF deci$="M" THEN 3070 280 IF tir=3 THEN 340 290 GOSUB 1690:IF deci$="T" THEN 2510 300 FOR n=1 TO 5:vde1=dt(n):GOSUB 1360 310 IF deci$="T" THEN 2510 320 NEXT n 330 deci$="T":dr(1)=1:dr(2)=1:dr(3)=1:dr(4)=1:dr(5)=1:GOTO 2510 340 GOSUB 1030:IF deci$="M" THEN 2510 350 deci$="R":GOSUB 1480:GOTO 2510 360 'ne1=1:2 des semblables 370 ON ne2+1 GOTO 480,480,380 380 'ne2=2:c'est un fool 390 IF somde>=14 OR x<10 THEN GOSUB 1130:IF deci$="M" THEN 2510 400 IF somde>=23 THEN GOSUB 1220:IF deci$="M" THEN 2510 410 IF somde>=21 AND somde<24 THEN GOSUB 1160:IF deci$="M" THEN 2510 420 IF tir<3 THEN cc=vde2:GOSUB 1280:IF deci$="M" THEN 2510 430 IF tir<3 THEN GOSUB 1360:IF deci$="T" THEN 2510 440 IF tir<3 THEN GOSUB 1690:IF deci$="T" THEN 2510 450 cc=vde1:GOSUB 1280:IF deci$="M" THEN 2510 460 IF tir<3 THEN deci$="T":FOR l=1 TO 5:dr(l)=1:NEXT:GOTO 2510 470 deci$="R":GOSUB 1480:GOTO 2510 480 'ne2=1:2 fois 2 des semblables ou 2 semblables,3 differents 490 IF somde>=23 THEN GOSUB 1220:IF deci$="M" THEN 2510 500 IF somde>=21 AND somde<24 THEN GOSUB 1160:IF deci$="M" THEN 2510 510 IF tir<3 THEN GOSUB 1690:IF deci$="T" THEN 2510 520 IF tir<3 THEN GOSUB 1360:IF deci$="T" THEN 2510 530 IF vde1<vde2 THEN cc=vde1:GOSUB 1280:IF deci$="M" THEN 2510 540 IF ne2=1 THEN cc=vde2:GOSUB 1280:IF deci$="M" THEN 2510 550 IF vde1>=vde2 THEN cc=vde1:GOSUB 1280:IF deci$="M" THEN 2510 560 IF x<10 THEN GOSUB 1030:IF deci$="M" THEN 2510 570 IF tir<3 THEN deci$="T":dr(1)=1:dr(2)=1:dr(3)=1:dr(4)=1:dr(5)=1:GOTO 2510 580 deci$="R":GOSUB 1480:GOTO 2510 590 'ne1=2:3 des semblables 600 IF ne2=1 THEN 690 610 'ne2=0 620 cc=vde1:GOSUB 1280:IF deci$="M" THEN 2510 630 IF tir<3 THEN GOSUB 1690:IF deci$="T" THEN 2510 640 IF tir<3 THEN GOSUB 1360:IF deci$="T" THEN 2510 650 IF somde>=21 AND somde<24 THEN GOSUB 1160:IF deci$="M" THEN 2510 660 IF x<10 THEN GOSUB 1030:IF deci$="M" THEN 2510 670 IF tir<3 THEN deci$="T":FOR l=1 TO 5:dr(l)=1:NEXT:GOTO 2510 680 deci$="R":GOSUB 1480:GOTO 2510 690 ' ne2=1:c'est un fool 700 IF somde>=14 OR tir<3 THEN GOSUB 1130:IF deci$="M" THEN 2510 710 IF somde>=23 THEN GOSUB 1220:IF deci$="M" THEN 2510 720 IF somde>=21 AND somde<24 THEN GOSUB 1160:IF deci$="M" THEN 2510 730 cc=vde1:GOSUB 1280:IF deci$="M" THEN 2510 740 IF tir<3 THEN GOSUB 1690:IF deci$="T" THEN 2510 750 GOSUB 1130:IF deci$="M" THEN 2510 760 cc=vde2:GOSUB 1280:IF deci$="M" THEN 2510 770 IF tir<3 THEN deci$="T":FOR l=1 TO 5:dr(l)=1:NEXT:GOTO 2510 780 deci$="R":GOSUB 1480:GOTO 2510 790 ' ne1=3:c'est un carre 800 IF vde1>=3 OR tir<3 THEN GOSUB 1540:IF deci$="M" THEN 2510 810 IF tir<3 THEN GOSUB 1690:IF deci$="T" THEN 2510 820 cc=vde1:GOSUB 1280:IF deci$="M" THEN 2510 830 IF somde>=23 THEN GOSUB 1220:IF deci$="M" THEN 2510 840 IF somde>=21 AND somde<24 THEN GOSUB 1160:IF deci$="M" THEN 2510 850 IF tir<3 THEN GOSUB 1360:IF deci$="T" THEN 2510 860 IF tir<3 THEN deci$="T":FOR l=1 TO 5:dr(l)=1:NEXT:GOTO 2510 870 GOSUB 1540:IF deci$="M" THEN 2510 880 GOSUB 1030:IF deci$="M" THEN 2510 890 deci$="R":GOSUB 1480:GOTO 2510 900 'c'est un yam 910 GOSUB 1600:IF deci$="M" THEN 2510 920 IF vde1>=3 OR x<10 THEN GOSUB 1540:IF deci$="M" THEN 2510 930 IF vde1>=3 OR x<10 THEN GOSUB 1130:IF deci$="M" THEN 2510 940 cc=vde1:GOSUB 1280:IF deci$="M" THEN 2510 950 IF somde>=23 THEN GOSUB 1220:IF deci$="M" THEN 2510 960 IF somde >=21 AND somde <24 THEN GOSUB 1160:IF deci$="M" THEN 2510 970 IF tir <3 THEN deci$="T":FOR l=1 TO 5:dr(l)=1:NEXT:GOTO 2510 980 deci$="R":GOSUB 1480:GOTO 2510 990 '==========sous programmes de l'AMSTRAD======== 1000 ' choix d'une suite 1010 FOR l=1 TO x:IF tb(l)=10 OR tb(l)=22 OR tb(l)=34 OR tb(l)=46 OR tb(l)=58 THEN deci$="M":choix=tb(l):RETURN 1020 NEXT:RETURN 1030 ' choix d'un coup simple 1040 FOR l=1 TO x 1050 IF tir=1 AND tb(l)>0 AND tb(l)<7 THEN 1090 1060 IF tir=1 AND tb(l)>12 AND tb(l)<19 THEN 1090 1070 IF tir=3 AND ((tb(l)>24 AND tb(l)<31) OR (tb(l)>36 AND tb(l)<43) OR (tb(l)>48 AND tb(l)<55)) THEN 1090 1080 NEXT:RETURN 1090 bb=tb(l) MOD 6 1100 FOR p=1 TO 5:IF bb=dt(p) OR (bb=0 AND dt(p)=6) THEN deci$="M":choix=tb(l):RETURN 1110 NEXT 1120 GOTO 1080 1130 ' choix d'un fool 1140 FOR l=1 TO x:IF tb(l)=9 OR tb(l)=21 OR tb(l)=33 OR tb(l)=45 OR tb(l)=57 THEN deci$="M":choix=tb(l):RETURN 1150 NEXT:RETURN 1160 ' choix du moins 1170 FOR l=1 TO x 1180 IF tb(l)=8 OR tb(l)=20 OR (tb(l)=32 AND flagd(jou)=32) OR (tb(l)=44 AND flagm(jou)=44) OR tb(l)=56 THEN 1200 1190 NEXT:RETURN 1200 IF c(jou,(tb(l)-1))=0 OR c(jou,(tb(l)-1))>=somde+2 THEN deci$="M":choix=tb(l):RETURN 1210 GOTO 1190 1220 ' choix du plus 1230 FOR l=1 TO x 1240 IF tb(l)=7 OR tb(l)=19 OR (tb(l)=31 AND flagd(jou)=31) OR (tb(l)=43 AND flagm(jou)=43) OR tb(l)=55 THEN 1260 1250 NEXT:RETURN 1260 IF c(jou,(tb(l)+1))=0 OR c(jou,(tb(l)+1))+2 <=somde THEN deci$="M":choix=tb(l):RETURN 1270 GOTO 1250 1280 ' choix d'un coup simple pour une egalite 1290 FOR l=1 TO x 1300 IF tir=1 AND tb(l)>0 AND tb(l)<7 THEN 1340 1310 IF tir=2 AND tb(l)>12 AND tb(l)<19 THEN 1340 1320 IF tir=3 AND ((tb(l)>24 AND tb(l)<31) OR (tb(l)>36 AND tb(l)<43) OR (tb(l)>48 AND tb(l)<55)) THEN 1340 1330 NEXT l:RETURN 1340 IF tb(l) MOD 6=cc OR (tb(l) MOD 6=0 AND cc=6) THEN deci$="M":choix=tb(l):RETURN 1350 GOTO 1330 1360 ' retirage en fonction des coups simples possibles 1370 FOR l=1 TO x 1380 IF tir=1 AND tb(l)>12 AND tb(l)<19 THEN 1410 1390 IF (tb(l)>24 AND tb(l)<31) OR (tb(l)>36 AND tb(l)<43) OR (tb(l)>48 AND tb(l)<55) THEN 1410 1400 NEXT:RETURN 1410 IF tb(l) MOD 6=vde2 OR (tb(l) MOD 6=0 AND vde2=6) THEN 1440:'retirer vde1 1420 IF tb(l) MOD 6=vde1 OR (tb(l) MOD 6=0 AND vde1=6) THEN 1460:'retirer vde2 1430 GOTO 1400 1440 FOR m=1 TO 5:IF dt(m)=vde1 THEN dr(m)=1 1450 NEXT m:deci$="T":RETURN 1460 FOR m=1 TO 5:IF dt(m)<>vde1 THEN dr(m)=1 1470 NEXT m:deci$="T":RETURN 1480 ' choix de la rayure 1490 FOR l=1 TO 60:IF c(jou,ray(l))=0 THEN 1510 1500 NEXT 1510 IF(ray(l)>24 AND ray(l)<37) AND flagd(jou)<>ray(l) THEN 1500 1520 IF(ray(l)>36 AND ray(l)<49) AND flagm(jou)<>ray(l) THEN 1500 1530 choix=ray(l):RETURN 1540 'choix d'un carre 1550 FOR l=1 TO x 1560 IF tir=1 AND tb(l)=11 THEN deci$="M":choix=tb(l):RETURN 1570 IF tir=2 AND tb(l)=23 THEN deci$="M":choix=tb(l):RETURN 1580 IF tir=3 AND tb(l) MOD 12=11 THEN deci$="M":choix=tb(l):RETURN 1590 NEXT:RETURN 1600 ' choix d'un yam 1610 FOR l=1 TO x:IF tb(l)=12 OR tb(l)=24 OR tb(l)=36 OR tb(l)=48 OR tb(l)=60 THEN deci$="M":choix=tb(l):RETURN 1620 NEXT:RETURN 1630 ' affichage du retirage de l'AMSTRAD 1640 LOCATE #5,5,3:PRINT #5,"Je retire "; 1650 FOR l=1 TO 5:IF dr(l)=1 THEN PRINT #5,dt(l); 1660 NEXT 1670 FOR l=1 TO 2000:NEXT 1680 RETURN 1690 ' retirage en fonction d'une figure possible 1700 ON ne1 GOTO 1780,2230,2440 1710 ' ne1=0 1720 FOR l=1 TO x 1730 IF tir=1 AND tb(l)=22 THEN 1760 1740 IF tb(l)=34 OR tb(l)=46 OR tb(l)=58 THEN 1760 1750 NEXT:RETURN 1760 deci$="T":FOR l=1 TO 5:IF dt(l)=1 THEN dr(l)=1 1770 NEXT:RETURN 1780 'ne1=1 1790 ON ne2 GOTO 1960,2120 1800 ' ne2=0 1810 FOR l=1 TO x 1820 IF (tir=1 AND tb(l) MOD 12=9 AND tb(l)<>9) OR (tir=1 AND tb(l) MOD 12=9 AND tb(l)<>21) THEN 1910 1830 NEXT:FOR l=1 TO x 1840 IF (tir=1 AND tb(l) MOD 12=10 AND tb(l)<>10) OR (tir=1 AND tb(l) MOD 12=10 AND tb(l)<>22) THEN 1930 1850 NEXT 1860 FOR l=1 TO x 1870 IF tir>1 THEN 1890 1880 IF (tb(l) MOD 12 =11 AND tb(l) <>11) OR (tb(l) MOD 12=0 AND tb(l)<>12) THEN 1910 1890 IF (tb(l) MOD 12 =11 AND tb(l) <>23) OR (tb(l) MOD 12=0 AND tb(l)<>24) THEN 1910 1900 NEXT:RETURN 1910 deci$="T":FOR l=1 TO 5:IF dt(l)<>vde1 THEN dr(l)=1 1920 NEXT:RETURN 1930 IF dt(1)=6 AND dt(5)=1 THEN 1860 1940 deci$="T":FOR l=1 TO 5:IF dt(l)=vde1 THEN dr(l)=1:RETURN 1950 NEXT 1960 'ne2=1 1970 FOR l=1 TO x 1980 IF tir=1 AND tb(l) MOD 12=9 AND tb(l)<>9 THEN 2050 1990 IF tir>1 AND tb(l) MOD 12=9 AND tb(l)<>21 THEN 2050 2000 NEXT l 2010 FOR l=1 TO x 2020 IF tir=1 AND (tb(l) MOD 12=11 AND tb(l)<>11) OR (tb(l) MOD 12=0 AND tb(l)<>12) THEN 2070 2030 IF tir=1 AND (tb(l) MOD 12=11 AND tb(l)<>23) OR (tb(l) MOD 12=0 AND tb(l)<>24) THEN 2070 2040 NEXT l:RETURN 2050 deci$="T":FOR l=1 TO 5:IF dt(l)<>vde1 AND dt(l)<>vde2 THEN dr(l)=1 2060 NEXT:RETURN 2070 deci$="T":IF vde1>vde2 THEN 2100 2080 FOR l=1 TO 5:IF dt(l)=vde1 THEN dr(l)=1 2090 NEXT:RETURN 2100 FOR l=1 TO 5:IF dt(l)=vde2 THEN dr(l)=1 2110 NEXT:RETURN 2120 ' ne2=2 2130 FOR l=1 TO x 2140 IF tir>1 THEN 2160 2150 IF (tb(l) MOD 12=11 AND tb(l)<>11) OR (tb(l) MOD 12=0 AND tb(l)<>12) THEN 2180 2160 IF (tb(l) MOD 12=11 AND tb(l)<>23) OR (tb(l) MOD 12=0 AND tb(l)<>24) THEN 2180 2170 NEXT:RETURN 2180 deci$="T":IF vde2<3 AND vde2>vde1 THEN 2210 2190 FOR l=1 TO 5:IF dt(l)<>vde2 THEN dr(l)=1 2200 NEXT:RETURN 2210 FOR l=1 TO 5:IF dt(l)<>vde1 THEN dr(l)=1 2220 NEXT:RETURN 2230 ' ne1=2 2240 IF ne2=1 THEN 2330 2250 'ne2=0 2260 FOR l=1 TO x 2270 IF tir>1 THEN 2290 2280 IF (tb(l) MOD 12=11 AND tb(l)<>11) OR (tb(l) MOD 12=0 AND tb(l)<>12) THEN 2310 2290 IF (tb(l) MOD 12=11 AND tb(l)<>23) OR (tb(l) MOD 12=0 AND tb(l)<>24) THEN 2310 2300 NEXT:RETURN 2310 deci$="T":FOR l=1 TO 5:IF dt(l)<>vde1 THEN dr(l)=1 2320 NEXT:RETURN 2330 'ne2=1 2340 FOR l=1 TO x 2350 IF tir>1 THEN 2370 2360 IF (tb(l) MOD 12=11 AND tb(l)<>11) OR (tb(l) MOD 12=0 AND tb(l)<>12) THEN 2390 2370 IF (tb(l) MOD 12=11 AND tb(l)<>23) OR (tb(l) MOD 12=0 AND tb(l)<>24) THEN 2390 2380 NEXT:RETURN 2390 deci$="T":IF vde1<3 AND vde1>=vde2 THEN 2420 2400 FOR l=1 TO 5:IF dt(l)<>vde1 THEN dr(l)=1 2410 NEXT:RETURN 2420 FOR l=1 TO 5:IF dt(l)<>vde2 THEN dr(l)=1 2430 NEXT:RETURN 2440 ' ne1=3 2450 FOR l=1 TO x 2460 IF tir=1 AND (tb(l) MOD 12=11 AND tb(l)<>11) OR (tb(l) MOD 12=0 AND tb(l)<>12) THEN 2490 2470 IF tir=1 AND (tb(l) MOD 12=11 AND tb(l)<>23) OR (tb(l) MOD 12=0 AND tb(l)<>24) THEN 2490 2480 NEXT:RETURN 2490 deci$="T":FOR l=1 TO 5:IF dt(l)<>vde1 THEN dr(l)=1 2500 NEXT:RETURN 2510 '=======fonction help============ 2520 IF help=1 THEN 2560 2530 IF deci$="T" THEN GOSUB 1630:GOTO 210 2540 IF deci$="M" THEN 3070 2550 IF deci$="R" THEN 3070 2560 LOCATE #5,5,5:PRINT #5,"Vous devriez "; 2570 IF deci$="T" THEN PRINT #5,"retirer" 2580 IF deci$="M" THEN PRINT #5,"marquer" 2590 IF deci$="R" THEN PRINT #5,"rayer" 2600 LOCATE #5,5,6 2610 IF deci$="M" OR deci$="R" THEN 2640 2620 FOR l=1 TO 5:IF dr(l)=1 THEN PRINT #5,dt(l); 2630 NEXT:GOTO 2670 2640 ii=choix MOD 12:IF ii=0 THEN ii=12 2650 gg2$=MID$(po2$,ii,1):ii=INT((choix-1)/12)+1:gg1$=MID$(po1$,ii,1) 2660 PRINT #5,"le ";gg2$;" en ";gg1$ 2670 FOR l=1 TO 3500:NEXT:help=0:GOTO 3840 2680 '==========tirage des des========== 2690 tir=tir+1 2700 FOR l=1 TO 5:IF dr(l)=1 THEN dt(l)=INT(RND*6)+1:FOR m=1 TO 100:NEXT m 2705 NEXT l 2710 GOSUB 2930 2720 CLS #4:LOCATE #4,2,2:GOSUB 5610:PRINT #4,"TIRAGE ";tir;" : ";dt(1);" ";dt(2);" ";dt(3);" ";dt(4);" ";dt(5) 2730 'tri par ordre decroissant 2740 FOR l=1 TO 4:FOR m=l+1 TO 5 2750 IF dt(m)>dt(l) THEN aa=dt(l):dt(l)=dt(m):dt(m)=aa 2760 NEXT m:NEXT l 2770 'calcul des egalites de type 1 2780 ne1=0:ne2=0:vde1=0:vde2=0:l=1 2790 FOR m=l+1 TO 5 2800 IF dt(m)=dt(l) THEN ne1=ne1+1:vde1=dt(m) 2810 NEXT 2820 IF ne1=0 AND l<4 THEN l=l+1:GOTO 2790 2830 IF ne1=0 OR ne1>=3 THEN 2900 2840 'calcul des egalites de type 2 2850 FOR m=l+1 TO 5 2860 IF dt(m)=dt(l) AND dt(m)<>vde1 THEN ne2=ne2+1:vde2=dt(m) 2870 NEXT 2880 IF ne2=0 AND l<4 THEN l=l+1:GOTO 2850 2890 IF ne2=0 AND l=3 THEN l=4:GOTO 2860 2900 somde=dt(1)+dt(2)+dt(3)+dt(4)+dt(5) 2910 dr(1)=0:dr(2)=0:dr(3)=0:dr(4)=0:dr(5)=0 2920 RETURN 2930 'liste des coups possibles 2940 x=1:FOR l=1 TO 38:tb(l)=0:NEXT 2950 ON tir GOTO 2960,2990,3010 2960 FOR l=1 TO 24:IF c(jou,l)=0 THEN tb(x)=l:x=x+1 2970 NEXT 2980 GOTO 3010 2990 FOR l=13 TO 24:IF c(jou,l)=0 THEN tb(x)=l:x=x+1 3000 NEXT 3010 FOR l=25 TO 36:IF c(jou,l)=0 AND flagd(jou)=l THEN tb(x)=l:x=x+1 3020 NEXT 3030 FOR l=37 TO 48:IF c(jou,l)=0 AND flagm(jou)=l THEN tb(x)=l:x=x+1 3040 NEXT 3050 FOR l=49 TO 60:IF c(jou,l)=0 THEN tb(x)=l:x=x+1 3060 NEXT:RETURN 3070 '=========calcul de la marque======= 3080 IF choix>24 AND choix<37 THEN flagd(jou)=flagd(jou)+1 3090 IF choix>36 AND choix<49 THEN flagm(jou)=flagm(jou)-1 3100 IF deci$="R" THEN 3170 3110 IF choix<7 OR (choix>12 AND choix<19) OR (choix>24 AND choix<31) OR (choix>36 AND choix<43) OR (choix>48 AND choix<55) THEN 3200 3120 IF choix MOD 12=7 OR choix MOD 12 =8 THEN 3230 3130 IF choix MOD 12=9 THEN 3250 3140 IF choix MOD 12=10 THEN 3270 3150 IF choix MOD 12=11 THEN 3300 3160 GOTO 3320:'yam 3170 IF choix MOD 12=7 THEN 3350 3180 IF choix MOD 12=8 THEN 3380 3190 GOTO 3410:'tous les autres 3200 'les coups simples 3210 somde=0:FOR l=1 TO 5:IF choix MOD 12=dt(l) THEN somde=somde+dt(l) 3220 NEXT:c(jou,choix)=somde:GOTO 3430 3230 'le plus ou le moins 3240 c(jou,choix)=somde:GOTO 3430 3250 'le fool 3260 c(jou,choix)=somde+20:GOTO 3430 3270 'la suite 3280 IF somde=15 THEN c(jou,choix)=45:GOTO 3430 3290 c(jou,choix)=60:GOTO 3430 3300 'le carre 3310 c(jou,choix)=vde1*4+30:GOTO 3430 3320 'le yam 3330 c(jou,choix)=somde+40:GOTO 3430 3340 'la rayure 3350 'le plus 3360 c(jou,choix)=99:svc(jou)=c(jou,choix+1):c(jou,choix+1)=99:IF choix=31 THEN flagd(jou)=33 3370 GOTO 3490 3380 'le moins 3390 c(jou,choix)=99:svc(jou)=c(jou,choix-1):c(jou,choix-1)=99:IF choix=44 THEN flagm(jou)=42 3400 GOTO 3490 3410 'les autres 3420 c(jou,choix)=99:GOTO 3490 3430 'affichage de la marque 3440 IF jou=1 AND amstrad=1 THEN 3460 3450 LOCATE #5,20,6:PRINT #5,"SOIT ";c(jou,choix);" POINTS":GOTO 3550 3460 ii=choix MOD 12:IF ii=0 THEN ii=12 3470 gg2$=MID$(po2$,ii,1):ii=INT((choix-1)/12)+1:gg1$=MID$(po1$,ii,1) 3480 LOCATE #5,5,3:PRINT #5,"Je marque le ";gg2$;" en ";gg1$:LOCATE #5,8,6:PRINT #5,"SOIT ";c(jou,choix);" POINTS":GOTO 3550 3490 'affichage de la rayure 3500 IF jou=1 AND amstrad=1 THEN 3520 3510 LOCATE #5,5,6:PRINT #5,"D'ACCORD, C'EST RAYE":GOTO 3550 3520 ii=choix MOD 12:IF ii=0 THEN ii=12 3530 gg2$=MID$(po2$,ii,1):ii=INT((choix-1)/12)+1:gg1$=MID$(po1$,ii,1) 3540 LOCATE #5,5,3:PRINT #5,"Je raye le ";gg2$;" en ";gg1$:GOTO 3550 3550 'totaux par colonnes 3560 FOR k=0 TO 4 3570 dd=12*k 3580 IF c(jou,61+k)<>0 THEN 3680 3590 FOR l=1 TO 6:IF c(jou,dd+l)=0 THEN 3750 3600 NEXT l 3610 FOR m=1 TO 6:IF c(jou,dd+m)=99 THEN 3630 3620 c(jou,61+k)=c(jou,61+k)+c(jou,dd+m) 3630 NEXT m 3640 IF c(jou,61+k)>=80 THEN c(jou,66+k)=c(jou,61+k)*2:GOTO 3680 3650 IF c(jou,61+k)>=70 THEN c(jou,66+k)=c(jou,61+k)+30:GOTO 3680 3660 IF c(jou,61+k)>=60 THEN c(jou,66+k)=c(jou,61+k)+20:GOTO 3680 3670 c(jou,66+k)=c(jou,61+k) 3680 IF c(jou,71+k)<>0 THEN 3750 3690 FOR l=7 TO 12:IF c(jou,dd+l)=0 THEN 3750 3700 NEXT l 3710 c(jou,71+k)=c(jou,66+k) 3720 FOR m=7 TO 12:IF c(jou,dd+m)=99 THEN 3740 3730 c(jou,71+k)=c(jou,71+k)+c(jou,dd+m) 3740 NEXT m 3750 NEXT k 3760 IF c(jou,71)<>0 AND c(jou,72)<>0 AND c(jou,73)<>0 AND c(jou,74)<>0 AND c(jou,75)<>0 THEN finjou(jou)=1 3770 c(jou,76)=c(jou,71)*3:c(jou,77)=c(jou,72)*2:c(jou,78)=c(jou,73) 3780 c(jou,79)=c(jou,74):c(jou,80)=c(jou,75) 3790 c(jou,81)=c(jou,76)+c(jou,77)+c(jou,78)+c(jou,79)+c(jou,80) 3800 GOTO 5970 3810 ' ===========jeu du joueur========== 3820 CLS #1:GOSUB 4930 3830 GOSUB 2680 3840 CLS #5:CLS #6 3850 LOCATE #5,5,1:PRINT #5,"Que faites vous ? "; 3860 deci$=UPPER$(INKEY$):IF deci$="" THEN 3860 3870 IF deci$="T" THEN PRINT #5,"T":GOSUB 3940:GOTO 3950 3880 IF deci$="M" THEN PRINT #5,"M":GOSUB 3940:GOTO 4140 3890 IF deci$="R" THEN PRINT #5,"R":GOSUB 3940:GOTO 4140 3900 IF deci$="C" THEN PRINT #5,"C":GOTO 4780 3910 IF deci$="A" THEN PRINT #5,"A":GOSUB 3940:GOTO 4910 3920 IF deci$="H" THEN PRINT #5,"H":GOSUB 3940:help=1:LOCATE #5,5,2:PRINT #5,"Je reflechis...":GOTO 230 3930 GOTO 3860 3940 svdt(1)=dt(1):svdt(2)=dt(2):svdt(3)=dt(3):svdt(4)=dt(4):svdt(5)=dt(5):svdeci$=deci$:svjou=jou:svtir=tir:RETURN 3950 'retirage des des 3960 IF tir=3 THEN GOSUB 5640:CLS #6:PRINT #6,"IMPOSSIBLE, C'EST DEJA LE TIRAGE 3":FOR l=1 TO 2500:NEXT:GOTO 3840 3970 LOCATE #5,5,3:PRINT #5,"Quels des retirez vous ?":LOCATE #5,5,4:PRINT #5,"tous:9-valid.:<ENTER>-erreur:curseur G" 3980 l=1:LOCATE #5,5,6 3990 deci$=INKEY$:IF deci$="" THEN 3990 4000 IF deci$=CHR$(13) THEN 4070:'return 4010 IF deci$=CHR$(242) THEN LOCATE #5,5,6:PRINT #5,SPC(20):FOR l=1 TO 4:ff(l)=0:NEXT:GOTO 3980:'curseur G 4020 IF deci$="9" THEN dr(1)=1:dr(2)=1:dr(3)=1:dr(4)=1:dr(5)=1:GOTO 3830 4030 IF ASC(deci$)<49 OR ASC(deci$)>54 THEN 3990 4040 IF l=5 THEN 3990 4050 ff(l)=VAL(deci$):PRINT #5,ff(l);:l=l+1 4060 GOTO 3990 4070 'validation 4080 FOR n=1 TO l-1 4090 FOR m=1 TO 5 4100 IF ff(n)=dt(m) AND dr(m)=0 THEN dr(m)=1:GOTO 4120 4110 NEXT m 4120 NEXT n 4130 GOTO 3830 4140 'marque ou rayure 4150 IF deci$="R" THEN LOCATE #5,5,3:PRINT #5,"Quelle case rayez vous ?":GOTO 4170 4160 LOCATE #5,5,3:PRINT #5,"Quelle case marquez vous ?" 4170 LOCATE #5,5,4:PRINT #5,"valid.:<ENTER>-erreur:curseur G" 4180 GOSUB 4570 4190 'calcul de la variable tb 4200 FOR l=0 TO 4:IF MID$(po1$,(l+1),1)=gg1$ THEN 4220 4210 NEXT 4220 FOR m=1 TO 12:IF MID$(po2$,m,1)=gg2$ THEN 4240 4230 NEXT 4240 choix=(l*12)+m:svchoix=choix 4250 'verification de la legalite du coup 4260 IF c(jou,choix)=99 THEN GOSUB 5640:CLS #6:PRINT #6,"IMPOSSIBLE, CETTE CASE EST DEJA RAYEE":FOR l=1 TO 2500:NEXT:GOTO 3840 4270 IF c(jou,choix)>0 THEN GOSUB 5640:CLS #6:PRINT #6,"IMPOSSIBLE, CETTE CASE EST DEJA REMPLIE":FOR l=1 TO 2500:NEXT:GOTO 3840 4280 IF (choix>36 AND choix<49) AND flagm(jou)<>choix THEN GOSUB 5640:CLS #6:PRINT #6,"IMPOSSIBLE, VOUS N'ETES PAS ENCORE A CETTE CASE":FOR l=1 TO 2500:NEXT:GOTO 3840 4290 IF (choix>24 AND choix<37) AND flagd(jou)<>choix THEN GOSUB 5640:CLS #6:PRINT #6,"IMPOSSIBLE, VOUS N'ETES PAS ENCORE A CETTE CASE":FOR l=1 TO 2500:NEXT:GOTO 3840 4300 IF deci$="R" THEN 3070 4310 FOR n=1 TO x:IF choix=tb(n) THEN 4340 4320 NEXT 4330 GOSUB 5640:CLS #6:PRINT #6,"IMPOSSIBLE,C'EST DEJA LE TIRAGE ";tir:FOR l=1 TO 2500:NEXT:GOTO 3840 4340 ON m GOTO 4350,4350,4350,4350,4350,4350,4390,4420,4450,4480,4510,4540 4350 'les coups simples 4360 FOR n=1 TO 5:IF dt(n)=m THEN 3070 4370 NEXT 4380 GOSUB 5640:CLS #6:PRINT #6,"IMPOSSIBLE, VOUS N'AVEZ PAS DE ";m:FOR l=1 TO 2500:NEXT:GOTO 3840 4390 'le plus 4400 IF somde>=23 AND somde>=c(jou,choix+1)+2 THEN 3070 4410 GOSUB 5640:CLS #6:PRINT #6,"IMPOSSIBLE, LE TIRAGE EST INSUFFISANT":FOR l=1 TO 2500:NEXT:GOTO 3840 4420 'le moins 4430 IF somde>=21 AND (somde<=c(jou,choix-1)-2 OR c(jou,choix-1)=0) THEN 3070 4440 GOSUB 5640:CLS #6:PRINT #6,"IMPOSSIBLE, LE TIRAGE NE CONVIENT PAS":FOR l=1 TO 2500:NEXT:GOTO 3840 4450 'le fool 4460 IF (ne1=1 AND ne2=2) OR (ne1=2 AND ne2=1) OR ne1=4 THEN 3070 4470 GOSUB 5640:CLS #6:PRINT #6,"IMPOSSIBLE, VOUS N'AVEZ PAS UN FOOL":FOR l=1 TO 2500:NEXT:GOTO 3840 4480 'la suite 4490 IF somde=15 OR somde=20 THEN 3070 4500 GOSUB 5640:CLS #6:PRINT #6,"IMPOSSIBLE, VOUS N'AVEZ PAS UNE SUITE":FOR l=1 TO 2500:NEXT:GOTO 3840 4510 'le carre 4520 IF ne1=3 OR ne1=4 THEN 3070 4530 GOSUB 5640:CLS #6:PRINT #6,"IMPOSSIBLE, VOUS N'AVEZ PAS UN CARRE":FOR l=1 TO 2500:NEXT:GOTO 3840 4540 'le yam 4550 IF ne1=4 THEN 3070 4560 GOSUB 5640:CLS #6:PRINT #6,"IMPOSSIBLE, VOUS N'AVEZ PAS UN YAM":FOR l=1 TO 2500:NEXT:GOTO 3840 4570 'sous programme d'affichage 4580 LOCATE #5,5,6:PRINT #5,"le en ":LOCATE #5,8,6 4590 dc$=UPPER$(INKEY$):IF dc$="" THEN 4590 4600 IF ASC(dc$)>48 AND ASC(dc$)<55 THEN gg2$=dc$:PRINT #5,gg2$:GOTO 4680 4610 IF dc$="+" THEN PRINT #5,dc$:gg2$=dc$:GOTO 4680 4620 IF dc$="-" THEN PRINT #5,dc$:gg2$=dc$:GOTO 4680 4630 IF dc$="F" THEN PRINT #5,dc$:gg2$=dc$:GOTO 4680 4640 IF dc$="S" THEN PRINT #5,dc$:gg2$=dc$:GOTO 4680 4650 IF dc$="C" THEN PRINT #5,dc$:gg2$=dc$:GOTO 4680 4660 IF dc$="Y" THEN PRINT #5,dc$:gg2$=dc$:GOTO 4680 4670 GOTO 4590 4680 LOCATE #5,13,6 4690 dc$=UPPER$(INKEY$):IF dc$="" THEN 4690 4700 IF dc$=CHR$(242) AND POS(#5)>7 THEN LOCATE #5,8,6:PRINT #5," ":LOCATE #5,13,6:PRINT #5," ":LOCATE #5,8,6:GOTO 4590 4710 IF dc$=CHR$(13) THEN RETURN 4720 IF dc$="1" THEN PRINT #5,dc$:gg1$=dc$:GOTO 4690 4730 IF dc$="2" THEN PRINT #5,dc$:gg1$=dc$:GOTO 4690 4740 IF dc$="M" THEN PRINT #5,dc$:gg1$=dc$:GOTO 4690 4750 IF dc$="D" THEN PRINT #5,dc$:gg1$=dc$:GOTO 4690 4760 IF dc$="I" THEN PRINT #5,dc$:gg1$=dc$:GOTO 4690 4770 GOTO 4690 4780 'annulation de la commande precedente 4790 IF jou=2 AND amstrad=1 THEN saut=1 4800 tir=svtir:dt(1)=svdt(1):dt(2)=svdt(2):dt(3)=svdt(3):dt(4)=svdt(4):dt(5)=svdt(5) 4810 IF svdeci$="T" THEN GOSUB 2710:GOTO 3840 4820 IF svdeci$="M" OR svdeci$="R" THEN jou=svjou:choix=svchoix 4830 IF svdeci$="M" THEN c(jou,choix)=0:GOSUB 4930:GOSUB 2710:GOTO 3840 4840 IF svdeci$="A" THEN jou=svjou:finjou(jou)=0:GOSUB 4930:GOSUB 2710:GOTO 3840 4850 IF svdeci$="C" THEN 3840 4860 'svdeci$="R" 4870 IF choix MOD 12 =7 THEN c(jou,choix)=0:c(jou,choix+1)=svc(jou):GOSUB 4930:GOSUB 2710:GOTO 3840 4880 IF choix MOD 12=8 THEN c(jou,choix)=0:c(jou,choix-1)=svc(jou):GOSUB 4930:GOSUB 2710:GOTO 3840 4890 'autre cas 4900 c(jou,choix)=0:GOSUB 4930:GOSUB 2710:GOTO 3840 4910 'abandon 4920 finjou(jou)=1:GOTO 5970 4930 '========affichage permanent====== 4940 LOCATE #1,1,1 4950 PRINT #1,TAB(4);CHR$(149);TAB(6);"1C";TAB(9);CHR$(149);TAB(11);"2C";TAB(14);CHR$(149);TAB(17);"D";TAB(19);CHR$(149);TAB(22);"M";TAB(24);CHR$(149);TAB(26);"IN" 4960 PRINT #1,STRING$(28,154); 4970 PRINT #1," 1 ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 4980 PRINT #1," 2 ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 4990 PRINT #1," 3 ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5000 PRINT #1," 4 ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5010 PRINT #1," 5 ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5020 PRINT #1," 6 ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5030 PRINT #1,STRING$(28,154); 5040 PRINT #1,"ST ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5050 PRINT #1,"TB ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5060 PRINT #1,STRING$(28,154); 5070 PRINT #1," + ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5080 PRINT #1," - ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5090 PRINT #1,STRING$(28,154); 5100 PRINT #1," F ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5110 PRINT #1," S ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5120 PRINT #1," C ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5130 PRINT #1," Y ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5140 PRINT #1,STRING$(28,154); 5150 PRINT #1," T ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5160 PRINT #1,"TB ";CHR$(149);TAB(9);CHR$(149);TAB(14);CHR$(149);TAB(19);CHR$(149);TAB(24);CHR$(149) 5170 dd=0:LOCATE #1,7,3 5180 FOR l=1 TO 6:FOR m=1 TO 5 5190 IF c(jou,dd+l)<>0 AND c(jou,dd+l)<>99 THEN LOCATE #1,(5*m),(2+l):PRINT #1,USING "###";c(jou,dd+l);:dd=dd+12:GOTO 5220 5200 IF c(jou,dd+l)=99 THEN LOCATE #1,((5*m)+1),(2+l):PRINT #1,CHR$(233);CHR$(233);:dd=dd+12:GOTO 5220 5210 dd=dd+12 5220 NEXT m:dd=0 5230 NEXT l 5240 dd=60 5250 FOR l=1 TO 2 5260 FOR m=1 TO 5 5270 IF c(jou,dd+m)<>0 THEN LOCATE #1,(5*m),(9+l):PRINT #1,USING "###";c(jou,dd+m); 5280 NEXT m:dd=65 5290 NEXT l 5300 dd=6 5310 FOR l=1 TO 2 5320 FOR m=1 TO 5 5330 IF c(jou,dd+l)<>0 AND c(jou,dd+l)<>99 THEN LOCATE #1,(5*m),(12+l):PRINT #1,USING "###";c(jou,dd+l);:dd=dd+12:GOTO 5360 5340 IF c(jou,dd+l)=99 THEN LOCATE #1,((5*m)+1),(12+l):PRINT #1,CHR$(233);CHR$(233);:dd=dd+12:GOTO 5360 5350 dd=dd+12 5360 NEXT m:dd=6 5370 NEXT l 5380 dd=8 5390 FOR l=1 TO 4 5400 FOR m=1 TO 5 5410 IF c(jou,dd+l)<>0 AND c(jou,dd+l)<>99 THEN LOCATE #1,(5*m),(15+l):PRINT #1,USING "###";c(jou,dd+l);:dd=dd+12:GOTO 5440 5420 IF c(jou,dd+l)=99 THEN LOCATE #1,((5*m)+1),(15+l):PRINT #1,CHR$(233);CHR$(233);:dd=dd+12:GOTO 5440 5430 dd=dd+12 5440 NEXT m:dd=8 5450 NEXT l 5460 dd=70 5470 FOR l=1 TO 2 5480 FOR m=1 TO 5 5490 IF c(jou,dd+m)<>0 THEN LOCATE #1,(5*m),(20+l):PRINT #1,USING "###";c(jou,dd+m); 5500 NEXT m:dd=75:NEXT l 5510 CLS #2:LOCATE #2,2,1:PRINT #2,"C'est a ";nomjou$(jou);" de jouer" 5520 RETURN 5530 'affichage des commandes 5540 PRINT #3," Tirer les des............T" 5550 PRINT #3," Marquer les des..........M" 5560 PRINT #3," Rayer une case...........R" 5570 PRINT #3," Annuler la commande......C" 5580 PRINT #3," Abandonner...............A" 5590 PRINT #3," Help !...................H" 5600 RETURN 5610 '=========sonorisation=========== 5620 'tirage 5630 FOR l=1 TO 5:SOUND 1,son(l),10:NEXT:RETURN 5640 'erreur 5650 SOUND 1,1046,100:RETURN 5660 '=========initialisations======== 5670 po2$="123456+-FSCY":po1$="12DMI" 5680 FOR l=1 TO 5:flagm(l)=48:flagd(l)=25:NEXT 5690 jou=1 5700 FOR l=1 TO 5:finjou(l)=0:NEXT 5710 RESTORE:FOR l=1 TO 60:READ ray(l):NEXT 5720 FOR l=1 TO 5:READ son(l):NEXT 5730 RETURN 5740 '========inscription des joueurs======== 5750 CLS:MODE 1 5760 LOCATE #0,9,3:PRINT"INSCRIPTION DES JOUEURS" 5770 LOCATE #0,1,5:PRINT"Voulez vous que je joue ? (O/N): "; 5780 deci$=UPPER$(INKEY$):IF deci$="" THEN 5780 5790 PRINT deci$:IF deci$="O" THEN amstrad=1:nomjou$(1)="AMSTRASUPER":svnomjou$(1)="AMSTRASUPER" 5800 jj=10:jou=1:WINDOW #1,1,40,18,19:WINDOW #2,1,40,22,23 5810 LOCATE #0,5,jj:IF nomjou$(jou)<>"" THEN PRINT "Joueur ";jou;" ";nomjou$(jou):jj=jj+1:jou=jou+1:nbjou=nbjou+1 5820 IF jou=6 THEN CLS #1:LOCATE #1,5,1:PRINT #1,"DESOLE,PAS PLUS DE 5":FOR l=1 TO 2000:NEXT:GOSUB 5890:GOTO 6000 5830 LOCATE #2,1,1:PRINT #2,"Tapez le nom du joueur et <ENTER>,ou <ENTER> seul pour demarrer le jeu." 5840 CLS #1:LOCATE #1,5,1:PRINT #1,"Nom du joueur ";jou;:LINE INPUT #1,nomjou$(jou):nomjou$(jou)=UPPER$(nomjou$(jou)):svnomjou$(jou)=nomjou$(jou) 5850 IF LEN(nomjou$(jou))>12 THEN CLS #1:LOCATE #1,5,1:PRINT #1,"CE N'EST PAS POSSIBLE !":FOR l=1 TO 1000:NEXT:GOTO 5840 5860 IF nomjou$(jou)="" THEN RETURN 5870 GOTO 5810 5880 RETURN 5890 '========dessin du cadre========== 5900 MODE 2:CLS 5910 FOR l=1 TO 25:LOCATE 1,l:PRINT CHR$(127);TAB(30);CHR$(127);TAB(79);CHR$(127):NEXT 5920 LOCATE 1,1:PRINT STRING$(30,127):LOCATE 31,1:PRINT STRING$(48,208):LOCATE 31,3:PRINT STRING$(48,140):LOCATE 30,10:PRINT STRING$(49,127):LOCATE 30,14:PRINT STRING$(49,127) 5930 LOCATE 30,21:PRINT STRING$(49,127):LOCATE 1,24:PRINT STRING$(79,127):PRINT STRING$(79,127):LOCATE 30,25:PRINT" YAM A 5 COLONNES " 5940 WINDOW #1,2,29,2,23:WINDOW #2,31,78,2,2:WINDOW #3,31,78,4,9:WINDOW #4,31,78,11,13:WINDOW #5,31,78,15,20:WINDOW #6,31,78,22,23 5950 GOSUB 5530 5960 RETURN 5970 '=========boucle de jeu=========== 5980 CLS #6:LOCATE #6,12,1:PRINT #6,"<SPACE> pour continuer le jeu" 5990 IF INKEY(47)<0 THEN 5990 6000 jou=jou+1:IF jou>nbjou THEN jou=1 6010 IF flagfinjeu=nbjou THEN 6070 6020 IF saut=1 THEN jou=jou+1:saut=0 6030 IF finjou(jou)=1 THEN flagfinjeu=flagfinjeu+1:GOTO 6000 6040 tir=0:dr(1)=1:dr(2)=1:dr(3)=1:dr(4)=1:dr(5)=1 6050 IF jou=1 THEN flagfinjeu=0:IF amstrad=1 THEN 190 6060 GOTO 3810 6070 '=========fin du jeu============ 6080 MODE 1 6090 LOCATE 10,1:PRINT"VOICI LES RESULTATS" 6100 FOR l=1 TO nbjou-1:FOR m=l+1 TO nbjou 6110 IF c(m,81)>c(l,81) THEN aa=c(l,81):aa$=nomjou$(l):c(l,81)=c(m,81):nomjou$(l)=nomjou$(m):c(m,81)=aa:nomjou$(m)=aa$ 6120 NEXT m:NEXT l 6130 FOR l=1 TO nbjou 6140 LOCATE 1,4+l:PRINT l;" ";nomjou$(l);TAB(25);c(l,81);" points" 6150 NEXT 6160 IF nomjou$(1)="AMSTRASUPER" THEN LOCATE 2,16:PRINT"J'avoue que je ne suis pas mecontent...":GOTO 6180 6170 LOCATE 5,16:PRINT"BRAVO ";nomjou$(1);" !" 6180 LOCATE 5,18:PRINT"Une autre partie? (O/N)" 6190 CLEAR INPUT 6200 deci$=UPPER$(INKEY$):IF deci$="" THEN 6200 6210 IF deci$="O" THEN 6230 6220 LOCATE 5,20:PRINT"Dommage...":END 6230 LOCATE 5,20:PRINT"Avec les memes joueurs? (O/N)" 6240 deci$=UPPER$(INKEY$):IF deci$="" THEN 6240 6250 IF deci$="O" THEN 6270 6260 CLS:GOTO 130 6270 FOR l=1 TO nbjou:finjou(l)=0:nomjou$(l)=svnomjou$(l):flagm(l)=48:flagd(l)=25:FOR m=1 TO 81 6280 c(l,m)=0:NEXT m:NEXT l 6290 jou=0:flagfinjeu=0:GOSUB 5890:GOTO 6000 6300 '==========data's============== 6310 DATA 48,49,25,26,27,28,29,30,42,41,40,39,38,37,44,31,50,51,52,53,54,46,34,12,56,55,33,47,35,45 6320 DATA 36,24,43,32,57,58,59,13,1,14,15,16,17,18,2,3,4,5,6,20,19,22,21,23,8,7,10,9,11,60 6330 DATA 1396,1567,1760,1975,2093 6340 '============regles du jeu========================= 6350 MODE 2:PRINT TAB(34);"REGLES DU JEU":PRINT TAB(34);"_____________":PRINT 6360 PRINT"Le but de ce jeu de reflexion et de hasard est de realiser avec 5 des et en 3" 6370 PRINT"tirages maximum, un certain nombre de figures. Celles ci sont reparties en" 6380 PRINT"colonnes, sur lesquelles s'exercent diverses contraintes:" 6390 PRINT 6400 PRINT"-Les figures de la colonne 1 ne peuvent etre realisees qu'en 1 seul tirage." 6410 PRINT"-Celles de la colonne 2 ne peuvent etre faites qu'en 2 coups maximum." 6420 PRINT"-La colonne D doit etre remplie dans l'ordre en descendant." 6430 PRINT"-La colonne M doit etre remplie dans l'ordre en montant." 6440 PRINT"-La colonne I est entierement libre." 6450 PRINT 6460 PRINT"Si en 3 tirages le joueur n'a pu realiser une des figures demandees, il doit" 6470 PRINT"rayer une case vide de son choix (celles des colonnes D et M seront cependant" 6480 PRINT"rayees dans l'ordre D ou M). La rayure du + ou du - annule ces 2 cases en" 6490 PRINT"meme temps. Une case rayee vaut 0 point." 6500 PRINT"Les coups simples (de 1 a 6) beneficient d'un bonus, si leur total (ST) est" 6510 PRINT"superieur ou egal a 60. Les points de la colonne 1 sont ensuite multiplies par 3" 6520 PRINT"ceux de la colonne 2 par 2. Le vainqueur est celui qui a le total de points" 6530 PRINT"le plus eleve." 6540 PRINT TAB(30);"<SPACE> pour continuer" 6550 CALL &BB06:CLS 6560 PRINT"FIGURE CONDITION EXIGEE VALEUR" 6570 PRINT 6580 PRINT"1-2-3-4-5-6 au moins 1 de de la somme des des correspondants" 6590 PRINT" valeur voulue" 6600 PRINT" le + somme des des >=23 somme des des" 6610 PRINT" et <= (moins+2)" 6620 PRINT" le - somme des des >=21 somme des des" 6630 PRINT" et <= (plus-2)" 6640 PRINT" le Fool 2 des pareils + 3 20 + somme des des" 6650 PRINT" des pareils" 6660 PRINT" la suite 1-2-3-4-5 ou 45 ou 60" 6670 PRINT" 2-3-4-5-6" 6680 PRINT" le carre 4 des pareils 30 + somme des des" 6690 PRINT" le yam 5 des pareils 40 + somme des des" 6700 PRINT 6710 PRINT"Le programme autorise 5 joueurs, l'ordinateur peut etre l'un d'eux. Il sert" 6720 PRINT"d'arbitre, de comptable, et empeche la triche. On peut lui demander conseil (H)" 6730 PRINT"Un joueur peut abandonner en cours de partie sans empecher les autres de" 6740 PRINT"continuer (A). On peut enfin revenir en arriere en annulant la commande" 6750 PRINT"precedente. Cette commande n'est active que quand la question 'que faites vous" 6760 PRINT"est posee, donc au tour du joueur suivant. Le programme revient alors en" 6770 PRINT"arriere, en sautant le tour de l'AMSTRAD si celui ci etait intercale." 6780 PRINT TAB(30);"<SPACE> pour continuer" 6790 CALL &BB06:CLS 6800 PRINT"Pour corriger une erreur, on peut, selon les circonstances, utiliser le curseur" 6810 PRINT"GAUCHE, demander l'execution d'un ordre illegal (ex. marquer une case deja" 6820 PRINT"remplie) ou utiliser la commande C au tour du joueur suivant." 6830 PRINT 6840 PRINTSi vous desirez une demonstration, designez l'ordinateur comme unique joueur." 6850 LOCATE 1,20:PRINT TAB(30);"<SPACE> pour continuer" 6860 CALL &BB06:RETURN |