Untitled
unknown
csharp
4 months ago
2.4 kB
3
Indexable
void Display( List<string> hidden_letters, List<string> wrong_letters, int lives ) { Console.Clear(); foreach (var letter in hidden_letters) { Console.Write(letter + " "); } Console.Write("\n\nNombres de vies restantes: " + lives + "\n"); Console.Write("Mauvaises lettres déjà essayées: "); foreach (string letter in wrong_letters) { Console.Write(letter + " "); } Console.Write("\n\n"); } string HandleLetterInput() { string? letter_input; do { Console.WriteLine("Propose une lettre: "); letter_input = Console.ReadLine(); while (letter_input?.Length != 1) { Console.WriteLine("Propose une seule lettre!"); letter_input = Console.ReadLine(); } } while (letter_input?.Length != 1 && Char.IsLetter(letter_input, 0)); return letter_input; } Console.WriteLine("Entre un mot: "); string? mot_a_deviner = Console.ReadLine(); List<string> letters = new List<string>(); List<string> hidden_letters = new List<string>(); List<string> wrong_letters = new List<string>(); bool is_game_over = false; bool is_game_win = false; int remaining_lifes = 5; if (mot_a_deviner != null) { foreach (char c in mot_a_deviner) { letters.Add(c.ToString()); hidden_letters.Add("_"); } } while (true) { Display(hidden_letters, wrong_letters, remaining_lifes); if (!hidden_letters.Contains("_")) { is_game_win = true; break; } if (remaining_lifes <= 0) { is_game_over = true; break; } string letter_input = HandleLetterInput(); if (letters.Contains(letter_input)) { for (int i = 0; i < letters.Count; i++) { if (letters[i] == letter_input) { hidden_letters[i] = letters[i]; } } } else { if (!wrong_letters.Contains(letter_input)) { remaining_lifes--; wrong_letters.Add(letter_input); } } } if (is_game_over) { Console.WriteLine("Perdu!"); Console.Write("Il fallait deviner: \""); foreach (string letter in letters) { Console.Write(letter); } Console.Write("\"\n"); } if (is_game_win) { Console.WriteLine("Gagné!"); }
Editor is loading...
Leave a Comment