10 '*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
20 '* * 30 '* LE ROUGE ET LE NOIR * 40 '* ( ==> Ecran couleur ) * 50 '*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* 60 INK 0,25:INK 1,1:INK 2,0:INK 3,6 70 PAPER 0:PEN 1 80 MODE 1 90 RESTORE 220 100 ' 110 '----CHOIX DE LA COMBINAISON 120 ' 130 CLS:LOCATE 1,3:PRINT "ENTREZ UN NOMBRE DE 1 A 7:" 140 LOCATE 29,3 150 NB1$=INKEY$:IF NB1$="" THEN 150 160 IF NB1$<"1" OR NB1$>"7" THEN 190 170 PRINT NB1$ 180 FOR Z=2 TO VAL(NB1$):FOR Y=1 TO 9:READ A:NEXT Y:NEXT Z 190 FOR I=1 TO 9 200 READ A:P(I)=A:S(I)=ABS(A-1) 210 NEXT I 220 DATA 1,1,1,1,0,1,1,1,1 230 DATA 0,0,0,0,1,0,0,0,0 240 DATA 0,1,0,0,0,1,1,1,0 250 DATA 0,1,0,0,1,0,1,0,1 260 DATA 0,1,1,0,1,0,0,1,1 270 DATA 0,1,0,0,1,1,0,1,0 280 DATA 0,1,1,1,0,0,0,1,1 290 DATA 0,0,1,0,1,1,0,0,1 300 CLS:GOSUB 1260 310 GOSUB 1280 320 XX=30:INV=1:GOSUB 1380 330 '----------------------- 340 '----NOMBRE DE COUPS---- 350 '----------------------- 360 LOCATE 31,15:PRINT "Nombre" 370 LOCATE 30,16:PRINT "de coups" 380 LOCATE 34,17:PRINT "0" 390 XX=5:INV=0:GOSUB 1380 400 '----------------------- 410 '----PAVES IDENTIQUES 420 '----------------------- 430 FOR X=1 TO 9 440 IF S(X)<>P(X) THEN 510 ELSE 450 450 NEXT X 460 LOCATE 5,5:PRINT "BRAVO C'EST TRES BIEN" 470 A=0:GOTO 650 480 '---------------------------------- 490 '----RESTE-T'IL DES CASES NOIRES ?- 500 '---------------------------------- 510 FOR X=1 TO 9 520 IF P(X)<>1 THEN 570 530 NEXT X 540 LOCATE 5,5:PRINT "MAL JOUE VOUS VOUS ETES BLOQUE" 550 A=0:GOTO 650 560 '----------------------- 570 '----CASE A MODIFIER---- 580 '----------------------- 590 LOCATE 5,1:PRINT "Entrez le numero de la case" 600 LOCATE 10,2:PRINT "ou 0 pour arreter" 610 A$=INKEY$:IF A$="" THEN 610 620 IF A$<"0" OR A$>"9" THEN 610 630 A=VAL(A$) 640 '------------------- 650 '----FIN DU JEU ---- 660 '------------------- 670 IF A=0 THEN 680 ELSE 710 680 FOR I=1 TO 2000:NEXT I 690 INK 0,1:INK 1,24:CLS:END 700 '------------------ 710 '---- CONTROLE ---- 720 '------------------ 730 IF P(A)<> 1 THEN 780 740 PRINT CHR$(7); 750 LOCATE 1,4:PRINT "Coup interdit,la case doit etre noire" 760 FOR I=1 TO 500:NEXT I 770 LOCATE 1,4:PRINT STRING$(37," "):GOTO 590 780 COUP=COUP+1:LOCATE 33,17:PRINT COUP 790 ON A GOSUB 840,890,930,980,1020,1080,1120,1170,1210 800 GOTO 390 810 '------------------------------ 820 '----MODIFICATIQN DES CASES---- 830 '------------------------------ 840 P(1)=1 850 P(2)=ABS(P(2)-1) 860 P(4)=ABS(P(4)-1) 870 P(5)=ABS(P(5)-1) 880 RETURN 890 P(2)=1 900 P(1)=ABS(P(1)-1) 910 P(3)=ABS(P(3)-1) 920 RETURN 930 P(3)=1 940 P(2)=ABS(P(2)-1) 950 P(5)=ABS(P(5)-1) 960 P(6)=ABS(P(6)-1) 970 RETURN 980 P(4)=1 990 P(1)=ABS(P(1)-1) 1000 P(7)=ABS(P(7)-1) 1016 RETURN 1020 P(5)=1 1030 P(2)=ABS(P(2)-1) 1040 P(4)=ABS(P(4)-1) 1050 P(6)=ABS(P(6)-1) 1060 P(8)=ABS(P(8)-1) 1070 RETURN 1080 P(6)=1 1090 P(3)=ABS(P(3)-1) 1100 P(9)=ABS(P(9)-1) 1110 RETURN 1120 P(7)=1 1130 P(4)=ABS(P(4)-1) 1140 P(5)=ABS(P(5)-1) 1150 P(8)=ABS(P(8)-1) 1160 RETURN 1170 P(8)=1 1180 P(7)=ABS(P(7)-1) 1190 P(9)=ABS(P(9)-1) 1200 RETURN 1210 P(9)=1 1220 P(5)=ABS(P(5)-1) 1230 P(6)=ABS(P(6)-1) 1240 P(8)=ABS(P(8)-1) 1250 RETURN 1260 GOSUB 1280:XX=5:INV=0:GOSUB 1380:XX=30:INV=1:GOSUB 1380:GOTO 1510 1270 '---------------------- 1280 '----PAVE NUMERIQUE---- 1290 '---------------------- 1300 FOR I=1 TO 3 1310 LOCATE 15,(I+1)*2+4 1320 FOR J=1 TO 3 1330 PRINT (I-1)*3+J; 1340 NEXT J 1350 NEXT I 1360 RETURN 1370 '------------------------ 1380 '----PAVE DE COULEURS---- 1390 '------------------------ 1400 FOR I=1 TO 3 1410 LOCATE XX,(I+1)*2+4 1420 FOR J=1 TO 3 1430 IF INV=0 THEN IF P(J+(I-1)*3)=0 THEN PEN 2 ELSE PEN 3 1440 IF INV=1 THEN IF P(J+(I-1)*3)=0 THEN PEN 3 ELSE PEN 2 1450 PRINT CHR$(143);" "; 1460 NEXT J 1470 NEXT I 1480 PEN 1 1490 RETURN 1500 '-------------------- 1510 '----REGLE DU JEU---- 1520 '-------------------- 1530 LOCATE 1,1:PRINT "Vous devez,en inversant les couleurs" 1540 PRINT "de la representation de gauche obtenir celle a droite de l'ecran" 1550 PRINT "en respectant les regles suivantes :" 1560 LOCATE 1,17:PRINT "Appuyez sur une touche pour explications" 1570 A$=INKEY$:IF A$="" THEN 1570 1580 CLS:PRINT "La case a inverser devra toujours etre" 1590 PRINT "noire, mais ATTENTION selon sa position,"; 1600 PRINT "l'inversion de couleur influera sur les cases adjacentes : " 1610 PRINT:PRINT "Si vous modifiez la couleur d'une case :" 1620 PRINT:PRINT "Centrale 5, la couleur des cases 2-4-6-8 sera aussi inversee." 1630 PRINT:PRINT "D'angle 1,3,7,9 , la couleur des cases" 1640 PRINT "contigues sera aussi inversee." 1650 PRINT:PRINT "ex : pour inversion case 1, les cases 2, 4,5 sont aussi inversees." 1660 PRINT:PRINT "De milieu 2,4,6,8 la couleur des cases de la meme ligne ou colonne est inversee" 1670 PRINT "ex : pour inversion de case 2, les cases 1,3 sont aussi inversees." 1680 PRINT:PRINT:PRINT "Appuyez sur une touche pour commencer." 1690 A$=INKEY$:IF A$="" THEN 1690 1700 CLS:RETURN |