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 :

Pierre Feuille Ciseaux


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 13
    Par défaut Pierre Feuille Ciseaux
    Bonjour, je m'essaye au C++ et j'ai voulu faire un mini-jeux avec mes connaissances. Mais je ne comprend pas où sa plante.
    Ce jeux est celui du pierre feuille ciseaux, faites un petit test pour voir comment il nemarche pas ^^.
    Merci de m'aider dans un premier temps à le faire marcher et dans un deuxieme temps à simplifier mon code, des if tout le long je pense qu'il y a mieux mais je ne connais pas.
    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
    100
    101
    102
    103
    104
    105
    #include <cstdio>
    #include <cstdlib>
    #include <iostream>
    using namespace std;
     
    int main(int nNumberofArgs, char* pszArgs[])
    {
        cout << "Voici le jeux du pierre-feuille-ciseaux.\n 0 = pierre\n 1=feuille\n 2=ciseaux\n 3 pour quitter" << endl;
     
        int chxUt, randComp, TUt, TComp;
     
        re:
            randComp = rand() % 3;
     
            cin >> chxUt;
            if (chxUt > 3)
            {
                      cout << "Entrez un nombre compris entre 0 et 3" << endl;
                      goto re;
            }
     
            if (chxUt = 0)
            {
                  if (randComp = 1)
                  {
                               cout << "pierre - pierre" << endl;
                               cout << "   EGALITE" << endl;
                  }
     
                  if (randComp = 2)
                  {
                               cout << "pierre - feuille" << endl;
                               cout << "   PERDU" << endl;
                               TComp++;
                  }
     
                  if (randComp = 3)
                  {
                               cout << "pierre - ciseaux" << endl;
                               cout << "   GAGNE" << endl;
                               TUt++;
                  }
     
                  goto re;
            }
     
            if (chxUt = 1)
            {
                  if (randComp = 1)
                  {
                               cout << "feuille - pierre" << endl;
                               cout << "   GAGNE" << endl;
                               TUt++;
                  }
     
                  if (randComp = 2)
                  {
                               cout << "feuille - feuille" << endl;
                               cout << "   EGALITE" << endl;
                  }
     
                  if (randComp = 3)
                  {
                               cout << "feuille - ciseaux" << endl;
                               cout << "   PERDU" << endl;
                               TComp++;
                  }
     
                  goto re;
            }
     
            if (chxUt = 2)
            {
                  if (randComp = 1)
                  {
                               cout << "ciseaux - pierre" << endl;
                               cout << "   PERDU" << endl;
                               TComp++;
                  }
     
                  if (randComp = 2)
                  {
                               cout << "ciseaux - feuille" << endl;
                               cout << "   GAGNE" << endl;
                               TUt++;
                  }
     
                  if (randComp = 3)
                  {
                               cout << "ciseaux - ciseaux" << endl;
                               cout << "   EGALITE" << endl;
                  }
     
                  goto re;
            }
     
        if (chxUt = 3)
        {
                  cout << "Fin de la partie.\n Score:\n Utilisateur : " << TUt << "\n Ordinateur : " << TComp << endl;
                  goto fin;
        }
        fin:
        system("PAUSE");
        return 0; 
    }

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 36
    Par défaut
    essaye de faire des fonction plutot que tes goto ou bien des boucles....
    Pour les if tu peut utiliser switch, case.
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    switch(x)
    {
    case 1 : // on fait ce qu'il faut si x=1
      break; // on sort du switch
    case 2 : // on fait ce qu'il faut si x=2
      break;
    default : // on fait ce qu'il faut pour les autres cas...
    }

  3. #3
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    tu entends quoi par "il ne marche pas ?"

    déjà, et c'est un erreur fréquente, l'opérateur = est celui d'affectation et non celui de comparaison. Pour comparer deux valeurs, il faut prendre ==
    Tu peux déjà changer ça dans tous tes if
    Ensuite, il va falloir sérieusement penser aux boucles et à la suppression des goto.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 66
    Par défaut
    Comme à dit mnaulet tu devrais simplifier ton code en le décomposant dans des fonctions que tu crées dans une source separé(function.cpp par ex) et ensuite tu appeles tes quelques fonctions dans le int main() et la tu verras que ca sera plus simple à regler,
    ggcourtois

  5. #5
    Membre expérimenté
    Avatar de superspag
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 153
    Par défaut
    Quelques petites remarques (si ça peut t'aider)

    - N'utilise pas de "goto"... essais de faire des fonctions ou alors utilise des instructions conditionnelles comme while(...) par exemple.

    - Tu confonds l'opérateur d'affectation = et l'opérateur d'égalité ==

    - Attention, les formules du type R = rand() % N; ne sont pas uniformes.

    - Attention, quand tu utilises des rand() il faut initialiser un germe... sinon les séquences pseudo-aléatoires sont toujours les mêmes.

    Essais de travailler sur ça déjà. Normalement, tu trouveras des réponses dans la FAQ.

    Si tu as besoin d'aide... Essai de re-ecrire un bout de code déjà

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Par défaut
    Attention a la commande random : quand tu l'appelles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     int x;
     x=random(3);
     // ou encore
     x=rand()%3;
    Il faut que tu fasses un random de 4 ainsi tu auras le 0,1,2,3...
    Ou incrémente la valeur x suivante
    Rajoute aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    srand(time(NULL));
    Tes chiffres seront vraiment des chiffres pris au hasard... avec un temps égal à 0... tu peux aussi mettre un interval par exemple : srand(3);
    où 3 correspond à un int _seed.


    Et un détail m'échappe : n'y a t-il pas de puit dans ce jeu?

Discussions similaires

  1. pierre papier ciseaux shell
    Par Phoenix2025 dans le forum Linux
    Réponses: 9
    Dernier message: 31/03/2009, 14h02
  2. [Conception] Concevoir le jeu Pierre Feuille Ciseau
    Par websurfeur dans le forum Général Java
    Réponses: 14
    Dernier message: 17/03/2006, 19h26

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