1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
| #include <iostream>
#include <fstream>
#include <string>
#include "dico.h"
#include <windows.h>
#include <set>
using namespace std;
void afficheMot(int lettreTrouve[],const char motSecret[], int taille)
{
for(int i = 0; i < taille; i++)
{
if(lettreTrouve[i] == 1)
{
cout << motSecret[i];
}
else
cout << " * ";
}
cout << endl;
}
char lireCaractere()
{
char caractere = 0;
caractere = getchar();
caractere = tolower(caractere);
while(getchar() != '\n');
return caractere;
}
int rechercheLettre(int lettreTrouve[], const char motSecret[], char maLettre, int taille)
{
int trouve = 0;
for(int i = 0; i < taille; i++)
{
if(motSecret[i] == maLettre)
{
lettreTrouve[i] = 1;
trouve = 1;
}
}
return trouve;
}
int gagne(int lettreTrouve[], int taille)
{
int somme = 0;
int gain = 1;
for(int i = 0; i < taille; i++)
{
somme += lettreTrouve[i];
}
if(somme == taille)
gain = 0;
return gain;
}
int main(void)
{
string motSecret, reponse, pseudo; //Déclaration de deux chaines
int taille = 0; //Initialisation de la taille de mot
bool jouer = true; //variable bool pour faire une boucle sur le programme
char maLettre = 0; //Initialisation de la variable ma lettre
int coupsRestant = 8; //nombre de coups restant
const char STOP='#';
cout << "Entrez votre pseudo" <<endl;
cin >> pseudo;
system("cls");
cout << "Bienvenue " << pseudo<< " dans le jeu du Pendu ! Voici les lois du jeu du pendu : vous disposez de 8 chances pour trouver le mot caché par des *. Si vous tappez simultanément deux lettres, la seconde ne sera pas prise en compte. Veuillez patienter, le jeu va se lancer automatiquement." << endl;
system("color f4");
Sleep(10000);
system ("cls");
cout<<"Entrer le mot a deviner suivi de "<<STOP<<"."<<endl;
getline(cin, motSecret, STOP);
while(jouer){
int *lettreTrouve = NULL;
lettreTrouve = new int[taille];
const char *motSecret = NULL;
motSecret = new char[taille+1];
//Initialisation du tableau lettreTrouver
for(int i = 0; i < taille; i++)
lettreTrouve[i] = 0;
while(coupsRestant > 0 && gagne(lettreTrouve, taille))
{
cout << "Il vous reste " << coupsRestant << " essai\n" << endl;
cout << "Quel est le mot secret ? ";
afficheMot(lettreTrouve, motSecret, taille);
cout << endl;
cout << "Proposez une lettre : ";
maLettre = lireCaractere();
cout << endl;
if(!rechercheLettre(lettreTrouve, motSecret, maLettre, taille))
coupsRestant--;
if(!rechercheLettre(lettreTrouve, motSecret, maLettre, taille))
cout << "la lettre '" << maLettre << "' ne figure pas dans le mot" << endl;
}
if(!gagne(lettreTrouve, taille))
cout << "Bravo " <<pseudo<< ", vous avez trouvé le mot secret " << motSecret << "!"<< endl;
else
cout << "Sorry, vous avez perdu " <<pseudo<< " le mot secret etait : " << motSecret << endl;
coupsRestant = 8;
cout << "Souhaitez-vous rejouer (oui ou non)? ";
cin >> reponse;
system ("cls");
while(reponse != "oui" && reponse != "non" && reponse != "n" && reponse != "o")
{
cout << "Choisissez entre oui et non : ";
cin >> reponse;
}
if(reponse == "non" or reponse == "n")
jouer = false;
}
} |
Partager