IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Pendu qui se termine immédiatement


Sujet :

C++

Mode arborescent

Invité Pendu qui se termine... 05/05/2015, 14h11
Astraya Bonjour if(reponse ==... 05/05/2015, 15h31
fenkys Si justement :... 05/05/2015, 16h06
koala01 Houlàlà... Laisse moi deviner... 05/05/2015, 16h28
Invité merci, une partie du problème... 05/05/2015, 17h56
Invité j'ai déjà réctifié comme ça.... 05/05/2015, 19h58
koala01 Non, il n'y a rien à... 05/05/2015, 20h19
fenkys C'est juste mais là tu figes... 06/05/2015, 09h55
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Pendu qui se termine immédiatement
    bonjour,

    je débute en c++ (et en codage) et mon code du jeu du pendu ne fonctionne pas. En fait quand je le lance, dès que je rentre le mot secret que l'utilisateur doit trouver, le programme se termine. Quelqu'un pourrait m'aider? Le soucis vient de la ligne 86 très certainement
    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
    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;
    	}
    }
    Dernière modification par LittleWhite ; 06/05/2015 à 09h05. Motif: Titre précis

Discussions similaires

  1. Thread qui se termine aprés quelque secondes ?
    Par jackm dans le forum Concurrence et multi-thread
    Réponses: 9
    Dernier message: 21/03/2008, 09h31
  2. [regexp] Chaine qui se termine par
    Par cootchy dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 28/08/2007, 18h39
  3. Terminate() qui ne terminate pas
    Par kurkaine dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2006, 21h05
  4. [csv]import qui ne termine jamais
    Par banzzai dans le forum Requêtes
    Réponses: 6
    Dernier message: 14/06/2006, 21h07
  5. Un thread de travail qui se termine et se libère tout seul
    Par bigquick dans le forum Threads & Processus
    Réponses: 15
    Dernier message: 24/06/2005, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo