Untitled
unknown
csharp
a year ago
2.4 kB
6
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