Untitled

 avatar
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