Problème de génération de nombre aléatoire nombre mystère
Résolu
bountybob261
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
Sugel Messages postés 4076 Date d'inscription Statut Membre Dernière intervention -
Sugel Messages postés 4076 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Cela fait quelques temps que je me suis mis à la programmation en c# et j'ai tout d'abord commencé par créer un programme "le Nombre Mystère". Le but est que la machine doit nous faire deviner le nombre qu'elle a généré.
Jusque là tout va bien, mais c'est au moment ou je veux relancer une partie sans fermer la fenêtre console que le nombre aléatoire généré reste le même qu'a la première partie . Selon vous comment pourrai-je lancer indéfiniment des parties en générant à chaque fois un nouveau nombre et sans fermer l'application.
Voici mon code:
Cela fait quelques temps que je me suis mis à la programmation en c# et j'ai tout d'abord commencé par créer un programme "le Nombre Mystère". Le but est que la machine doit nous faire deviner le nombre qu'elle a généré.
Jusque là tout va bien, mais c'est au moment ou je veux relancer une partie sans fermer la fenêtre console que le nombre aléatoire généré reste le même qu'a la première partie . Selon vous comment pourrai-je lancer indéfiniment des parties en générant à chaque fois un nouveau nombre et sans fermer l'application.
Voici mon code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication4 { class Program { static void Main(string[] args) { int randomed = new Random().Next(100) + 1; //Création de Random Console.WriteLine("Choisi un nombre entre 1 et 100"); // écriture phrase int PickedNum = PickANumber(); while (PickedNum != randomed) //Dédifinion du if else { if (PickedNum > randomed) { Console.WriteLine("C'est moins!"); } else { Console.WriteLine("C'est plus!"); } PickedNum = PickANumber(); } youwin(randomed); NouvellePartie(randomed); Console.ReadKey(); } static void youwin(int randomed) { Console.WriteLine("Bravo ! Tu as trouvé le nombre était bien " + randomed); // sortie de boucle si randomed == PickedNum } static int PickANumber() { string Picked = Console.ReadLine(); // prise en compte de la réponse de l'utilisateur si c'est une lettre int PickedNum; // prise en compte si c'est un chiffre while (int.TryParse(Picked, out PickedNum) == false) // définition de la valeur booléenne { Console.WriteLine("Ce n'est pas un nombre rééssaie!"); Picked = Console.ReadLine(); } return PickedNum; } static void NouvellePartie(int randomed) { Console.WriteLine("Choisi un nombre entre 1 et 100"); // écriture phrase int PickedNum = PickANumber(); while (PickedNum != randomed) //Dédifinion du if else { if (PickedNum > randomed) { Console.WriteLine("C'est moins!"); } else { Console.WriteLine("C'est plus!"); } PickedNum = PickANumber(); } youwin(randomed); Console.ReadKey(); NouvellePartie(randomed); } } }
A voir également:
- Problème de génération de nombre aléatoire nombre mystère
- Nombre de jours entre deux dates excel - Guide
- Nombre facile - Télécharger - Outils professionnels
- Ascii nombre de caractères - Guide
- Rmc mystere - Accueil - TV & Vidéo
- Nombre de page - Guide
3 réponses
C'est bon je viens de trouver l'astuce! j'ai simplement fait
return new Random().Next(1,101);
qui définie ma variable "randomed" et ainsi se relance à chaque fin de partie !
return new Random().Next(1,101);
qui définie ma variable "randomed" et ainsi se relance à chaque fin de partie !
Bonsoir, il faut initialiser ton random avec quelque chose qui change, en général, on utilise le Tick de DateTime.Now
Je viens d'effectuer quelques recherches, et avec mes maigres connaissances je ne vois pas comment initialiser Random. Je suppose qu'il faudrait instaurer DateTime.now lors de la déclaration de "randomed", mais je ne sais pas vraiment quel syntaxe aborder pour permettre la prise en compte de ce nouveau paramètre.