Bug dans mon système aléatoire (random)
Résolu/Fermé
cindylechat
Messages postés
24
Date d'inscription
mercredi 14 décembre 2016
Statut
Membre
Dernière intervention
21 décembre 2016
-
Modifié par jordane45 le 16/12/2016 à 18:35
Utilisateur anonyme - 16 déc. 2016 à 21:37
Utilisateur anonyme - 16 déc. 2016 à 21:37
A voir également:
- Bug dans mon système aléatoire (random)
- Bug yahoo mail - Accueil - Mail
- Restauration systeme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Bug chatgpt - Accueil - Intelligence artificielle
- Comment refaire le système d'un ordinateur - Guide
2 réponses
Utilisateur anonyme
16 déc. 2016 à 21:00
16 déc. 2016 à 21:00
Je viens d'essayer ça
J'ai enlevé les contrôles, que je n'ai pas et j'ai fait une boucle pour avoir 20 combinaisons.
Le random est bien déclaré pour une portée supérieure et il n'y en un bien un seul d'utiliser pour mes 20 combinaisons, soit 40 tirages.
1ere exécution
2eme exécution
Donc à priori, j'ai un peu tout et pas dans le même ordre.
List<string> combinaisons = new List<string>(); Random rnd1 = new Random(); for (int i = 0; i < 20; i++) { string[] tableauCorde = { "A", "B", "D", "E", "G" }; int iCorde = rnd1.Next(5); string corde = tableauCorde[iCorde]; if (true) { //Prend une note au hasard string[] tableauNote = { "A", "B", "C", "D", "E", "F", "G" }; int iNote = rnd1.Next(7); string note = tableauNote[iNote]; combinaisons.Add(string.Format("Code : {0}, Note {1}", corde, note)); } } string resultatForum = string.Join("\r\n", combinaisons);
J'ai enlevé les contrôles, que je n'ai pas et j'ai fait une boucle pour avoir 20 combinaisons.
Le random est bien déclaré pour une portée supérieure et il n'y en un bien un seul d'utiliser pour mes 20 combinaisons, soit 40 tirages.
1ere exécution
Code : B, Note G
Code : B, Note B
Code : E, Note E
Code : A, Note C
Code : A, Note G
Code : D, Note E
Code : B, Note G
Code : A, Note G
Code : D, Note F
Code : G, Note A
Code : B, Note A
Code : A, Note C
Code : G, Note B
Code : E, Note D
Code : A, Note B
Code : G, Note B
Code : E, Note G
Code : A, Note C
Code : A, Note F
Code : A, Note A
2eme exécution
Code : B, Note E
Code : G, Note C
Code : A, Note A
Code : D, Note F
Code : D, Note F
Code : G, Note C
Code : G, Note D
Code : D, Note A
Code : D, Note F
Code : A, Note A
Code : E, Note C
Code : D, Note D
Code : D, Note F
Code : D, Note D
Code : D, Note B
Code : A, Note C
Code : D, Note D
Code : E, Note B
Code : E, Note E
Code : A, Note C
Donc à priori, j'ai un peu tout et pas dans le même ordre.
Utilisateur anonyme
16 déc. 2016 à 19:19
16 déc. 2016 à 19:19
Bonsoir
pour que ton code soit lisible sur le forum, merci d'utiliser la coloration syntaxique, voir la procédure ici. Pour cette fois, j'ai demandé à la modération d'éditer ton message. Merci Jordane.
Concernant ton soucis
Essaye de mettre ton random global sur la classe.
Tu fais un Next pour la corde et un Next pour la note
pour que ton code soit lisible sur le forum, merci d'utiliser la coloration syntaxique, voir la procédure ici. Pour cette fois, j'ai demandé à la modération d'éditer ton message. Merci Jordane.
Concernant ton soucis
Essaye de mettre ton random global sur la classe.
Tu fais un Next pour la corde et un Next pour la note
cindylechat
Messages postés
24
Date d'inscription
mercredi 14 décembre 2016
Statut
Membre
Dernière intervention
21 décembre 2016
6
16 déc. 2016 à 19:31
16 déc. 2016 à 19:31
Qu'est-ce que tu veux dire ? J'ai déjà mis un Next pour la corde et un autre pour la note ?!
cindylechat
Messages postés
24
Date d'inscription
mercredi 14 décembre 2016
Statut
Membre
Dernière intervention
21 décembre 2016
6
Modifié par cindylechat le 16/12/2016 à 19:42
Modifié par cindylechat le 16/12/2016 à 19:42
J'ai testé avec cela:
J'ai toujours le même problème..
J'ai toujours le même problème..
//Prend une corde au hasard string[] tableauCorde = { "A", "B", "D", "E", "G" }; Random rnd1 = new Random(); int iCorde = rnd1.Next(5); string corde = tableauCorde[iCorde]; etq_quelle_corde.Text = corde; if (bFret) { //Prend une note au hasard string[] tableauNote = { "A", "B", "C", "D", "E", "F", "G" }; int iNote = rnd1.Next(7); string note = tableauNote[iNote]; etq_quelle_note.Visible = true; etq_quelle_note.Text = note; }
yg_be
Messages postés
23405
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 décembre 2024
1 557
16 déc. 2016 à 21:03
16 déc. 2016 à 21:03
Tu dois faire
Random rnd1 = new Random();une seule fois, pas chaque fois que tu recherches une nouvelle combinaison.
16 déc. 2016 à 21:05
Merci d'avoir pris le temps de m'aider !
Bonne fin de soirée :)
Modifié par Whismeril le 16/12/2016 à 21:38
Il possède d'ailleurs 2 constructeurs, le deuxième prend un int en paramètre et il est conseillé d'utiliser quelque chose qui change, l'heure par exemple.
Et donc, en utilisant autant de random que de tirage, tu as de grandes chances d'avoir des début de séquences identiques.
Si ça te convient, merci de marquer le sujet résolu avec le lien dédié, juste en dessous du titre de la discussion. Idem pour la précédente.