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 :

Jeu du pendu, lettre 'a' apparâit plusieurs fois dans un mot qui n'en contient pas


Sujet :

C++

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 3
    Par défaut Jeu du pendu, lettre 'a' apparâit plusieurs fois dans un mot qui n'en contient pas
    Bonjour, bonsoir.
    Je me suis penché ces derniers temps sur le jeu du pendu pour un petit projet que j'ai à faire avec la fac.
    Je n'ai aucun gros soucis pour le réaliser, néanmoins je rencontre un problème que je n'arrive pas à résoudre. En effet pour faire simple, je rentre le mot à faire deviner, par exemple "Bonjour".
    Ensuite le programme demande une lettre et vérifie si celle ci se trouve dans le mot bonjour. Cela fonctionne parfaitement pour toute les lettres, sauf avec la lettre 'a'. En effet, mon programme trouve 3 occurrences de 'a' dans le mot 'bonjour'. Je ne vois vraiment pas d'où me vient ce problème. Si quelqu'un a une idée, je poste mon code ci-dessous.
    Je précise que le jeu n'est qu'a 3/4 terminé, mais le plus gros y est.
    Merci de votre aide
    Cordialement.
    jeu du pendu :
    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
    #include<iostream>
    #include<stdio.h>
    #include<cstring>
     
    using namespace std;
     
    #define MAX 20
     
    void cacher ()              // Sert à sauter des lignes de sorte a ce que le joueur 2 ne voit pas le mot rentré
    {
        int i;
        for(i=0;i<15;i++);
        {
            cout << "\n" << endl;
        }
    }
     
    void remplir_tableau(char tab[],int n)       //Remplit le tableau solution de traits "_"
    {
        int i;
        for(i=0;i<n;i++)
        {
            tab[i]='_';
        }
    }
     
    void afficher_tableau(char tab[], int n)
    {
        int i;
        for(i=0;i<n;i++)
        {
            cout << tab[i] << " ";
        }
    }
     
    void vider_tableau(char tab[], int n)
    {
    	int i;
        for(i=0;i<n;i++)
        {
            tab[i]=' ';
        }
    }
     
    int main()
    {
       int nb_vie=5,i,correct=0,v,j=0;
       char mot[MAX],lettre,solution[MAX],faux[MAX];
     
     
       cout << "Entrer le mot a deviner :" <<endl;
       cin.getline(mot,MAX);
     
     
       int longueur=strlen(mot);
     
       cacher();
       remplir_tableau(solution,longueur);
       vider_tableau(faux,MAX);
       cout << "Vous commencez avec "<< nb_vie <<" vies\n" << endl;
       afficher_tableau(solution,longueur);
     
       while((nb_vie>0)&&(correct==0))
       {
            cout << "\nEntrer une lettre :" <<endl;
            cin >> lettre;
            v=0;
     
            for (i=0; i<MAX; i++)
            {
                if (mot[i]==lettre)
                {
                    solution[i]=lettre;
                    v++;
    				faux[j]=lettre; 
    				j++;
                }
            }
            if (v==0)
            {
                faux[j]=lettre;
                j++;
                nb_vie--;
                cout << "La lettre demandee n est pas dans le mot, -1 vie" << endl;
            }
            else
            {
                cout << "La lettre demandee apparait " << v << " fois dans le mot" << endl;
            }
            afficher_tableau(solution,longueur);
    		cout << "\nLettres deja proposees :";  
    		afficher_tableau(faux, MAX);
    		cout << "	Nombre de vie restantes:"<< nb_vie << endl;
     
        }
     
    	if (correct==0)
    	{
    		cout << "Vous avez Perdu toute vos vies, fin de la partie" << endl;
    	}
     
     
        return 0;
    }
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser exec plusieurs fois dans find
    Par Tex-Twil dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 12/03/2008, 14h49
  2. [XSLT] variable définie plusieurs fois dans la même portée
    Par dhallennem dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/02/2008, 15h48
  3. Réponses: 4
    Dernier message: 21/11/2007, 12h19
  4. Sous-requête excutée plusieurs fois dans une requête
    Par sheridan31 dans le forum Oracle
    Réponses: 8
    Dernier message: 03/07/2006, 16h18
  5. Réponses: 2
    Dernier message: 14/06/2006, 08h53

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