merci
pour 50 entitées
pour 50 entitées
merci
Une entité c'est un terme précis pour la 3D. Maintenant, je ne crois pas que ce soit cela que tu cherches :
- «On veut 50 variables numériques ayant une valeur entière différente entre 0 et 49 inclus»
1) On créée un domaine (tableau de 50 éléments)
2) On attribue les 50 nombres respectifs aux 50 variables «Project»
3) On fait une boucle qui va mélanger 1000 fois les variables
4) On affiche le tout dans la fenêtre de déboguage :
D'autres questions?
- «On veut 50 variables numériques ayant une valeur entière différente entre 0 et 49 inclus»
1) On créée un domaine (tableau de 50 éléments)
Code : Tout sélectionner
Global Dim Project.L(49)Code : Tout sélectionner
For i = 0 To 49
Project(i) = i
NextCode : Tout sélectionner
For i = 1 To 1000
Swap Project(Random(49) ), Project(Random(49) )
NextCode : Tout sélectionner
For i = 0 To 49
Debug Project(i)
Nextvoici la routine de base des chiffres du loto
Code : Tout sélectionner
Dim a ( 6)
RandomSeed(ElapsedMilliseconds()) ; initialise le generateur de nombre aleatoire
For i = 1 To 6 ; pour 6 fois (6 numero = une grille)
a(i) = Random(48)+1 ; on tire un chiffre au hasard entre 1 et 49
Debug "numero :"+Str(i)+" = "+ Str( a(i)) ; afffiche le resultat :o)
Next
End
Sauf que là avec les routines données vous pouvez tomber plusieurs fois sur le même numéro, alors que ça doit être impossible pour les numéro du loto...enfin je crois car j'y ai jamais joué !! lolllllllll 
Edit: Je critique mais je proposais pas de code, alors voilà j'ai modifier le code de Dobro (c'est du vite fait)
Edit: Je critique mais je proposais pas de code, alors voilà j'ai modifier le code de Dobro (c'est du vite fait)
Code : Tout sélectionner
Dim a ( 6)
RandomSeed(ElapsedMilliseconds()) ; initialise le generateur de nombre aleatoire
For i = 1 To 6 ; pour 6 fois (6 numero = une grille)
Ok=0
Repeat
a(i) = Random(48)+1 ; on tire un chiffre au hasard entre 1 et 49
Ok=1; Normalement c'est bon
For z=1 To i-1 ; Sauf si on a déjà cette valeur
If a(i)=a(z)
Ok=0
EndIf
Next
Until Ok=1;
Debug "numero :"+Str(i)+" = "+ Str( a(i)) ; afffiche le resultat :o)
Next
End
Dernière modification par Thyphoon le lun. 23/juin/2008 6:43, modifié 3 fois.
J'ai codé comme Gargamel
mais ça peut rapporter le gologolo
Hasta la vista !
Code : Tout sélectionner
;pureloto
;auteur Huitbit
;pb 4.20
Dim grille.b(7)
Dim grille_joueur.b(6)
;affichage
OpenConsole()
PrintN("tirage du loto")
Repeat
compteur=0
complementaire=0
;tirage initial
For i=1 To 7
grille(i)=1+Random(48)
Next i
;correction
For i=1 To 7
For j=1 To i
If i<>j
While grille(i)=grille(j)
grille(i)=1+Random(48)
Wend
EndIf
Next j
Next i
;choix des boules
For i=1 To 6
PrintN("Choix d'une case "+Str(i)+" ([entrer] pour valider ) ")
choix$=Input()
While Val(choix$)<1 Or Val(choix$)>49
PrintN("Choisissez une autre case "+Str(i)+" !")
choix$=Input()
Wend
If i>1
For j=1 To i-1
While Val(choix$)= grille_joueur(j)
PrintN("Choisissez une autre case "+Str(i)+" !")
choix$=Input()
Wend
Next j
While Val(choix$)<1 Or Val(choix$)>49
PrintN("Choisissez une autre case "+Str(i)+" !")
choix$=Input()
Wend
EndIf
grille_joueur(i)=Val(choix$)
Next i
;verification de la grille
For i=1 To 7
For j=1 To 6
If grille(i)=grille_joueur(j)
compteur=compteur+1
EndIf
If grille(7)=grille_joueur(j)
complementaire=1
EndIf
Next j
Next i
;affichage des resultats
PrintN("")
PrintN("<<<<<<<<<<>>>>>>>>>>")
PrintN("Numeros joues :")
For i =1 To 6
Print(Str(grille_joueur(i))+" / ")
Next i
PrintN("")
PrintN("")
PrintN("Numeros gagnants : ")
For i =1 To 6
Print(Str(grille(i))+" / ")
Next i
Print("compl : "+Str(grille(7)))
PrintN("")
PrintN("resultat :"+Str(compteur)+" bon(s) numero(s)")
If complementaire=1
PrintN("vous avez le complementaire!")
EndIf
PrintN("")
PrintN("")
ForEver
CloseConsole()
End C'est peut être pour ça que tu n'as pas encore gagné au loto... tu te retrouvais a coché plusieurs fois la même caseDobro a écrit :exacte, j'avais omis ce petit detailThyphoon a écrit :Sauf que là avec les routines données vous pouvez tomber plusieurs fois sur le même numéro, alors que ça doit être impossible pour les numéro du loto...
Thyphoon a écrit :C'est peut être pour ça que tu n'as pas encore gagné au loto... tu te retrouvais a coché plusieurs fois la même caseDobro a écrit :exacte, j'avais omis ce petit detailThyphoon a écrit :Sauf que là avec les routines données vous pouvez tomber plusieurs fois sur le même numéro, alors que ça doit être impossible pour les numéro du loto...
Super !Ollivier a écrit :Code : Tout sélectionner
Global Dim Project.L(49) For i = 0 To 49 Project(i) = i Next For i = 1 To 1000 Swap Project(Random(49) ), Project(Random(49) ) Next For i = 0 To 49 Debug Project(i) Next
En fait, en Swapant Random(49) avec Random(49) tu demandes de prendre un élément au hasard, et d'échanger sa place avec un autre élément au hasard. Je comprends pourquoi il faut 1000 passages ...
Pour faire plus simple, il suffit de faire une boucle sur les 49 éléments et de les swaper au hasard.
Code : Tout sélectionner
For i = 0 To 49
Swap Project(i), Project(Random(49))
Next Code : Tout sélectionner
For passages=1 to 2
For i = 0 To 49
Swap Project(i), Project(Random(49))
Next
Next
Dernière modification par kerkael le jeu. 25/sept./2008 16:31, modifié 1 fois.
-
jbernard13
- Messages : 1501
- Inscription : dim. 18/avr./2004 15:04
- Localisation : sud de la france