1 REM ******************** 2 REM * M A C A O * 3 REM ******************** 5 REM initialisation 10 GOSUB 1000 20 REM boucle sans fin 30 WHILE jamais=0 40 GOSUB 100 50 WEND 60 REM ******************** 90 REM Le Jeu 95 REM ******************** 100 FOR i=1 TO 3: ok(i)=1:NEXT 110 REM les 3 positions a rejouer 120 CLS #3: PRINT #3,"une touche SVP" : 125 CALL vide : WHILE INKEY$="":WEND 130 GOSUB 2000 135 REM 1er tour de roue 140 CLS #3:PRINT#3 141 PRINT #3,"Quelle(s) position(s) rejouez-vous? " 142 REM 145 CALL vide:num$="":x$="" 146 REM vide les entrees 147 REM 150 WHILE x$<>CHR$(13):REM simul input 152 IF x$>="1" AND x$<="3" THEN num$=num$+x$:PRINT #3,x$;" "; 153 x$=INKEY$ 155 WEND 157 REM 160 FOR i=1 TO 3:ok(i)=0:NEXT 162 REM pas de roues a faire tourner 165 FOR i=1 TO LEN(num$) 170 FOR j=1 TO 3 180 IF VAL(MID$(num$,i,1))=j THEN ok(j)=1:REM a rejouer ? 190 NEXT j 200 NEXT i 210 REM 2eme tour 220 IF ok(1)+ok(2)+ok(3)<>0 THEN GOSUB 2000 230 REM 240 GOSUB 700 250 REM 260 RETURN 270 REM 490 REM ********************* 491 REM affichage des roues 492 REM ********************* 500 PRINT #1,STRING$(8," ") ; 510 FOR i=1 TO 3 520 c=c(i) 530 IF c=224 THEN coul=3 540 IF c=227 OR c=228 THEN coul=2 550 IF c=226 OR c=229 THEN coul=0 560 PEN #1,coul 570 PRINT #1,CHR$(c);" "; 580 NEXT 590 REM 600 PRINT #1 610 REM 620 RETURN 630 REM 640 REM ******************** 680 REM ******************** 690 REM * resultat * 695 REM ******************** 700 plus=0 710 IF c(1)=c(2) OR c(1)=c(3) OR c(2)=c(3) THEN plus=10 720 IF c(1)=c(2) AND c(1)=c(3) THEN plus=100 730 score=score+plus 740 PEN #4,2:PRINT #4,score 750 RETURN 760 REM 990 REM ******************** 991 REM initialisation 992 REM ******************** 1000 INK 0,0:INK 1,1 1005 INK 2,6:INK 6,26,6 1010 INK 3,24,11:INK 4,9:INK 5,12 1020 BORDER 5 1030 PEN 3 1040 REM 1050 MODE 0 1060 REM 1070 WINDOW #6,10,17,2,2:REM score 1080 WINDOW #1,7,13,7,10:REM roues 1090 WINDOW #2,7,13,12,12: REM numero 1100 WINDOW #3,2,19,20,25:REM commandes 1110 WINDOW #4,17,25,2,3:REM total 1120 WINDOW #5,1,8,2,2:REM temps reste 1125 REM 1130 PAPER 0:PAPER #1,4:PAPER #3,4 1135 CLS:CLS #1:CLS #2:CLS #3:CLS#4:CLS #5:CLS #6 1140 PEN #6,2:PRINT #6,"Score:" 1150 PRINT #2," 1 2 3" 1155 FOR i=1 TO 3:c(i)=224:NEXT:GOSUB 500:REM sourire 1160 REM 1170 INPUT #3,"Duree du jeu 1 a 5 minutes ";minute 1180 IF minute<1 OR minute>5 THEN GOTO 1170 1190 REM 1200 sec = minute*60 1210 EVERY 50,3 GOSUB 4000:REM bats la seconde 1220 AFTER sec*50 ,0 GOSUB 5000 1230 REM fin 1240 vide=&BB03 1250 REM adresse pour reinitialiser le clavier 1260 RETURN 1990 REM ******************** 1991 REM les roues tournent 1992 REM ******************** 2000 REM 2030 rep=10 :REM 10 tours 2040 EVERY 18,1 GOSUB 3000:REM hasard 2050 WHILE rep>0:SOUND 3,500-20*rep:WEND:REM attente en musique 2060 xx=REMAIN(1) 2070 RETURN 2080 REM 2990 REM ******************** 2991 REM * hasard * 2992 REM ******************** 3000 RANDOMIZE TIME 3010 FOR i=1 TO 3 3020 IF ok(i)=1 THEN c(i)=226+INT(RND(3)*4) 3030 c(i)=MIN(c(i),229) 3040 NEXT i 3050 REM 3060 SOUND 4,0,10,15,,,1:REM cliquetis 3070 REM 3080 GOSUB 500:REM affichage 3090 REM 3100 rep = rep-1 3110 REM 3120 RETURN 3130 REM 3990 REM ******************** 3991 REM * temps qui reste * 3992 REM ******************** 4000 m=INT(sec/60) 4010 s=sec MOD 60 4020 PEN #5,4 : IF sec<10 THEN PEN #5,6 4030 PRINT #5:PRINT #5,m;s 4040 sec = sec - 1 4050 IF sec<0 THEN xx=REMAIN(3) 4060 RETURN 4070 REM 4990 REM ******************** 4991 REM * fin * 4992 REM ******************** 5000 CLS #3: PRINT #3,"Merci de votre" 5005 PRINT #3,"visite" 5010 PRINT #3,"A bientot" 5020 CLEAR 5030 WHILE INKEY$="":WEND 5040 END