Bonsoir les programmeurs!
Etudiant en 1ere année de BTS IRIS, je dois faire un petit projet.
Mon choix c'est porté sur le jeux du pendu en C++.
Mais je rencontre un problème :
- quand l'utilisateur rentre une lettre bonne : OK.
- quand l'utilisateur rentre une lettre déjà tapé : OK.
- quand l'utilisateur rentre une lettre mauvaise : Problème.
Lorsque l'utilisateur rentre une lettre mauvaise, mon programme ne réagit pas!
Voici le code source :
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 #include <iostream> #include <string> #include <cstdlib> using namespace std; int main() { cout << "\t\t__________________________________________" << endl; cout << "\t\t|::::::::: Jeu du pendu :::::::::|" << endl; cout << "\t\t__________________________________________" << endl; cout << "\t\t Bienvenue dans le jeu du pendu " << endl; string pseudo; char motMystere[] = "helloworld"; char motATrouver[] = "------------"; char lettreSaisie; int nombreEssais = 7; int i; cout << endl; cout << "Saisissez votre pseudo :" << endl; cin >> pseudo; system("clear"); // cout << "Appuyez sur une enter pour commencer la partie!" << endl; // en traitement. while (nombreEssais > 0) { bool lettreSaisieBool, lettreDejaTape = false; cout << endl << "Veuillez saisir une lettre : " << endl; cin >> lettreSaisie; // Boucle de test permettant de définir si la lettre a déja était saisie. for (i = 0 ; i < 10 ; i++) { if (lettreSaisie == motATrouver[i]) { lettreDejaTape = true; // lettre déjà tapé. nombreEssais--; if (nombreEssais == 0) { cout << "Perdu ! le mot secret étais : HELLOWORLD " << endl; } else { cout << "Vous avez déja fait apparaitre cette lettre dans le mot ! Plus que " << nombreEssais << " essais !" << endl; } } } // Lettre pas encore saisie auparavant. if (lettreDejaTape == false) { for (i = 0; i < 10; i++) { if (lettreSaisie == motMystere[i]) // si lettre saisie = une des lettres du mot mystere { lettreSaisieBool = true; // lettre bonne motATrouver[i] = lettreSaisie; // on remplace la/les lettres dans le tableau du mot à trouver. cout << "Cette lettre est bien dans le mot mystère!" << endl; } } } // Lettre n'apparait pas dans le mot. if (lettreSaisieBool = false) { nombreEssais--; if (nombreEssais == 0) { cout << "Perdu ! le mot secret était : HELLOWORLD!" << endl; } else { cout << "Raté ! cette lettre n'apparait pas dans le mot ! Plus que " << nombreEssais << " essais !" << endl; } } for (i = 0 ; i < 10 ; i++) // on affiche les lettres bonnes dans le tableau motATrouver. { cout << motATrouver[i] << " "; } } // fin du while } // fin du main
Cordialement.
Partager