Page 1 sur 1
[..] Random (pas de réutilisation)
Posté : jeu. 01 avr. 2010 18:23
par periaz
Bonsoir,
Je travaille actuellement sur un script et j'utilise la fonction "Random".
Je voudrais savoir s'il y avait un moyen pour que cette fonction de redonne pas les chiffres qu'elle a déjà trouvée.
Si sur une échelle de 1 à 5 elle me trouve le 3 et le 1, je voudrais qu'elle ne me les redonne pas mais seulement le 2, 4 et 5. Une fois que tous les chiffres sont utilisés, le script se ferme.
En vous remerciant d'avance,
Periaz
Re: [..] Random (pas de réutilisation)
Posté : jeu. 01 avr. 2010 20:38
par GaRydelaMer
Bonjour
regarde dans l'exemple de jeu de carte comment j'ai fait sur 32,34,52,54 ou 78 cartes la fonction Randomize.
le truc tu utilises un tableau.
Re: [..] Random (pas de réutilisation)
Posté : ven. 02 avr. 2010 17:52
par periaz
Salut,
Merci de ton aide j'ai été voir et ça marche. Maintenant faut que je l'adapte à mon script actuel car j'ai réussi entre temps à créer un fichier servant de base de données pour ne pas être répéter. Par contre, j'ai un problème avec le script que j'utilise actuellement. Je voulais me créer un questionnaire de 115 mots en français et les traduire en allemand. Pour cela, j'aurais voulu que les inputbox soient notés genre "Question 50", "Question 51", "Question 52" ...
Mais le compte ne marche pas trop car quand je mets :
Code : Tout sélectionner
$question=$question+1
If $question=116 Then
MsgBox(0, "Fin du Test", "Tu as eu "&$erreur&" fautes.")
ExitLoop
EndIf
Ca me compte mais des fois ca saute des questions (des fois ca passe 2 au lieu d'un).
Je vous mets le fichier en pièce jointes, il y a beaucoup de lignes mais je n'avais pas trouvé la solution pour le random.
EDIT : Je met le fichier "allemand bis". Dans ce script, il y la méthode de Gary. Merci encore Gary, c'est parfait !
Re: [..] Random (pas de réutilisation)
Posté : ven. 02 avr. 2010 18:30
par GaRydelaMer
Bonjour
pour moi le fichier allemand bis marche
je te l'ai un peu arangé:
► Afficher le texte
Code : Tout sélectionner
#Include <Array.au3>
Global $Erreur = 0
Global $MotsFR[116]
Global $MotsDE[116]
Global $Question[116][1]
$Question[0][0] = 115
Local $Melange[115], $Index, $i = 0
While $i < UBound($Melange)
$Index = Random(1, 115, 1)
If _ArraySearch($Melange, $Index) = -1 Then
$Melange[$i] = $Index
$i += 1
EndIf
WEnd
Local $Reponse
Do
$Reponse = InputBox("Questionnaire", "Combien voulez-vous de questions ?", 115)
If $Reponse Then
_Questionnaire($Reponse - 1)
EndIf
Until MsgBox(4 + 32, "Fin du Test", _
"Tu as eu " & $Erreur & " fautes." & @LF & @LF & _
"Voulez-Vous recommencer ?") = 7
Func _Questionnaire($nb = 9)
Local $Index = 0, $Reponse = ""
For $i = 0 To $nb
$Index = $Melange[$i]
$Reponse = InputBox("Question " & $i + 1, $Question[$Index][0])
If @error = 1 Then Return
If $Reponse = $MotsDE[$Index] Then
;rien
Else
IniWrite("Erreur.ini", "---" & $Index & "---", "Faute ", $Reponse & " --> Corrigé : " & $MotsDE[$Index])
$Erreur += 1
EndIf
Next
EndFunc ;==>_Questionnaire
Re: [..] Random (pas de réutilisation)
Posté : ven. 02 avr. 2010 19:10
par periaz
C'est normal que allemand bis marche c'est le bon, celui où j'ai modifié votre code. Par contre dans votre code, il me met prompt quand je lance le test, malgrès que j'ai remis la liste de mot.