Voici ma correction de ce TP.
Bien sûr, il existe beaucoup de façon de réaliser ce petit jeu. S’il fonctionne, c’est que votre solution est bonne. Ma solution fonctionne, la voici :
Code : C# 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 | static void Main(string[] args)
{
int valeurATrouver = new Random().Next(0, 100);
int nombreDeCoups = 0;
bool trouve = false;
Console.WriteLine("Veuillez saisir un nombre compris entre 0 et 100 (exclu)");
while (!trouve)
{
string saisie = Console.ReadLine();
int valeurSaisie;
if (int.TryParse(saisie, out valeurSaisie))
{
if (valeurSaisie == valeurATrouver)
trouve = true;
else
{
if (valeurSaisie < valeurATrouver)
Console.WriteLine("Trop petit ...");
else
Console.WriteLine("Trop grand ...");
}
nombreDeCoups++;
}
else
Console.WriteLine("La valeur saisie est incorrecte, veuillez recommencer ...");
}
Console.WriteLine("Vous avez trouvé en " + nombreDeCoups + " coup(s)");
}
|
On commence par obtenir un nombre aléatoire avec l’instruction que j’ai fournie dans l’énoncé. Nous avons ensuite les initialisations de variables. L’entier
nombreDeCoups va permettre de stocker le nombre d’essai et le booléen « trouve » va permettre d’avoir une condition de sortie de boucle.
Notre boucle démarre et ne se terminera qu’une fois que le booléen « trouve » sera passé à vrai (
true).
Dans le corps de la boucle, nous demandons à l’utilisateur de saisir une valeur que nous essayons de convertir en entier. Si la conversion échoue, nous l’indiquons à l’utilisateur et nous recommençons notre boucle. Notez ici que je n’incrémente pas le nombre de coups, jugeant qu’il n’y a pas lieu de pénaliser le joueur parce qu’il a mal saisi ou qu’il a renversé quelque chose sur son clavier juste avant de valider la saisie.
Si par contre la conversion se passe bien, nous pouvons commencer à comparer la valeur saisie avec la valeur à trouver. Si la valeur est la bonne, nous passons le booléen à vrai, ce qui nous permettra de sortir de la boucle et de passer à la suite. Sinon, nous afficherons un message pour indiquer si la saisie est trop grande ou trop petite en fonction du résultat de la comparaison.
Dans tous les cas, nous incrémenterons le nombre de coups.
Enfin, en sortie de boucle, nous indiquerons sa victoire au joueur ainsi que le nombre de coups utilisés pour trouver le nombre secret.
Une partie de jeu pourra être :