Created
March 31, 2020 16:07
-
-
Save wRadion/0ed0e52d8a9c1059b657aed0883d5801 to your computer and use it in GitHub Desktop.
Cours Jour 2 - Pendu
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using System; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| using System.Text; | |
| using System.Threading.Tasks; | |
| namespace CoursJour2 | |
| { | |
| class Program | |
| { | |
| static void Main(string[] args) | |
| { | |
| // Initialise les vies du joueur à 5 | |
| int lives = 5; | |
| // Demande au premier joueur de taper le mot à deviner (en majuscules) | |
| Console.Write("Entrez le mot à deviner (en majuscules) : "); | |
| // Récupère ce que le joueur a entré/tapé | |
| string wordToGuess = Console.ReadLine(); | |
| // Initialise la liste des lettres devinées à une chaîne vide | |
| string guessedLetters = string.Empty; | |
| // Initialise le mot caché de taille identique au mot à deviner mais avec que des underscores | |
| char[] hiddenWord = new string('_', wordToGuess.Length).ToCharArray(); | |
| // Tant que le joueur a au moins une vie | |
| while (lives > 0) | |
| { | |
| // Demande au deuxième joueur d'entrer/taper une lettre | |
| Console.Write("Entrez une lettre : "); | |
| char guess = Console.ReadLine()[0]; | |
| // Initialise des variables pour plus tard | |
| bool wordFound = true; | |
| bool wordContainsLetter = false; | |
| // Parcours le mot à deviner | |
| for (int i = 0; i < wordToGuess.Length; ++i) | |
| { | |
| // Si la lettre qu'on devine est dans le mot à deviner | |
| if (wordToGuess[i] == guess) | |
| { | |
| // Remplace l'underscore par la vrai lettre | |
| hiddenWord[i] = guess; | |
| // Met la variable à vrai (pour dire que le mot contiens la lettre) | |
| wordContainsLetter = true; | |
| } | |
| // Si on croise un underscore dans le mot caché (si le mot caché contient un underscore) | |
| if (hiddenWord[i] == '_') | |
| wordFound = false; // Met la variable à faux (pour dire que le mot n'est pas encore trouvé) | |
| } | |
| // Si le mot a été trouvé | |
| if (wordFound) | |
| { | |
| // Dit au joueur qu'il a gagné | |
| Console.WriteLine("Bravo ! Le mot était bien " + wordToGuess + " !"); | |
| // Sort de la boucle de jeu | |
| break; | |
| } | |
| // Si la lettre a déjà été devinée | |
| if (guessedLetters.Contains(guess)) | |
| { | |
| // Dit au joueur qu'il a déjà essayer cette lettre | |
| Console.WriteLine("Vous avez déjà essayer la lettre " + guess + "."); | |
| } | |
| else // Sinon (si la lettre n'a pas déjà été devinée) | |
| { | |
| // On l'ajoute à la liste des lettres devinées | |
| guessedLetters += guess; | |
| // Si le mot ne contient pas la lettre | |
| if (!wordContainsLetter) | |
| { | |
| // Dit au joueur que la lettre n'est pas dans le mot | |
| Console.WriteLine("La lettre " + guess + " n'est pas dans le mot."); | |
| // Retire une vie au joueur | |
| lives -= 1; | |
| // Dit au joueur combien de vie il lui reste | |
| Console.WriteLine("Il vous reste " + lives + " vies."); | |
| } | |
| } | |
| // Dans tous les cas, on affiche le mot caché au joueur | |
| Console.WriteLine("Le mot caché est : " + new string(hiddenWord)); | |
| } // Fin de la boucle principale | |
| // Si le joueur n'a plus de vie | |
| if (lives <= 0) | |
| { | |
| // Dit au joueur qu'il a perdu ! | |
| Console.WriteLine("Vous avez perdu ! Le mot était " + wordToGuess + "."); | |
| } | |
| Console.ReadLine(); | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment