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