Skip to content

Instantly share code, notes, and snippets.

@wRadion
Created March 31, 2020 16:07
Show Gist options
  • Save wRadion/0ed0e52d8a9c1059b657aed0883d5801 to your computer and use it in GitHub Desktop.
Save wRadion/0ed0e52d8a9c1059b657aed0883d5801 to your computer and use it in GitHub Desktop.
Cours Jour 2 - Pendu
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