Voilà un programme de loto qui vous imprimera une grille avec un choix de six à dix numéros (pour les grilles multiples).
L’algorithme :
L’algorithme :
Le Programme :
Ligne 30 à 70 : initialisation
Après le dimensionnement du tableau A(), on saisit au clavier le nombre de chiffres que l’on veut obtenir (6 pour les grilles simples, 7 à 10 pour les multiples)
La ligne 70 refuse toutes autres valeurs.
Ligne 100 à 140 : tirage
Elle remplissent le tableau A() avec des chiffres 1 pour les cases qui viennent d’être tirées au hasard.
La ligne 120 vérifie le contenu de A() pour s’assurer que le nombre n’a pas déjà été tiré.
Ligne 200 à 320 : résultat
Après le dessin du cadre (ligne 210), on affiche avec deux boucles FOR/NEXT imbriquées les 49 chiffres du loto.
Les chiffres qui ont été choisis sont barrés comme sur un bulletin normal.
Ligne 30 à 70 : initialisation
Après le dimensionnement du tableau A(), on saisit au clavier le nombre de chiffres que l’on veut obtenir (6 pour les grilles simples, 7 à 10 pour les multiples)
La ligne 70 refuse toutes autres valeurs.
Ligne 100 à 140 : tirage
Elle remplissent le tableau A() avec des chiffres 1 pour les cases qui viennent d’être tirées au hasard.
La ligne 120 vérifie le contenu de A() pour s’assurer que le nombre n’a pas déjà été tiré.
Ligne 200 à 320 : résultat
Après le dessin du cadre (ligne 210), on affiche avec deux boucles FOR/NEXT imbriquées les 49 chiffres du loto.
Les chiffres qui ont été choisis sont barrés comme sur un bulletin normal.
Listing : | |
10 REM LOTO 20 REM ————————————————— 30 DIM A(49) 40 MODE 1:INK 0,2:INK 1,25:BORDER 2 50 RANDOMIZE TIME 60 INPUT « NOMBRE DE CHIFFRES A TIRER »;N 70 IF N<6 OR N>10 THEN 40 80 REM ————————————————- 90 REM TIRAGE 100 FOR I=1 TO N 110 A=INT(RND(1)*49) 1 120 IF A(A)=1 THEN 110 130 A(A)=1 140 NEXT I 180 REM ———————————————- 190 REM RESULTAT 200 MODE 1:TAG:MOVE 270,399:PRINT « LOTO »; 210 MOVE 194,20:DRAW 400,20:draw 400,374:DRAW 194,374:DRAW 194,20 220 FOR I=0 TO 9 230 FOR J=0 TO 40 STEP 10 240 IF I J=0 THEN 290 250 X=200 J/10*40:Y=340-I*35 260 MOVE X 2,Y 20:PRINT USING »## »;I J; 270 MOVE X,Y:DRAW X 35,Y:DRAW X 35,Y 30:DRAW X,Y 30:DRAW X,Y 280 IF A(I J)=1 THEN MOVE X,Y:DRAW X 35,Y 30:MOVE X,Y 30:DRAW X 35,Y 290 NEXT J 300 NEXT I 310 IF INKEY$<>CHR$(13) THEN 310 320 RUN |
Liste des variables :
A nombre aléatoireA() liste des chiffres choisis
I indice de boucle FOR/NEXT
J indice de boucle FOR/NEXT
N nombre de chiffres à tirer
X Y coordonnées sur l’écran du chiffre affiché