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 de l'oie


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Par défaut jeu de l'oie
    Bonjour , je vous interpelle chers développeurs sur un jeu que je n'arrive pas à mettre au point .
    ce jeu de l'oie de 66 cases admet 2 joueurs dont on saisie le nom ;
    Quelques règles :
    - il faut arriver juste en 66 sinon on recule .
    - une oie toutes les 9 cases (sauf en 63) double le déplacement.
    - une tête de mort au 58 renvoie à la case départ (position 0 ) .
    Il faut afficher le nom du joueur qui a gagné et le nombre de fois qu'il a joué.

    Remarque :
    Toute partie en cours doit pouvoir être sauvegardée de façon à permettre aux joueurs de reprendre le jeu commencé un peu plus tard .

    Voilà je bloque sur le comment de la partie Jeu et au niveau de la Sauvegarde , une aide serait sympa , bien cordialement RoRo

  2. #2
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Salut,

    je propose de commencer par faire une classe qui contient les information sur le déroulement de la partie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct Partie
    {
        struct Joueur
        {
             string nom;
             char case;
        };
        bool tour; //true si c'est au joueur 1, false, si c'est au joueur 2
        Joueur p1, p2;
    };
    Comme ça après au niveau de la sauvegarde, tu n'as que le contenu de cette classe à enregistrer.

    Par contre si vous n'avez pas encore vu les string, il va falloir utiliser un char[] pour le nom du joueur.

    Ensuite, il faut pouvoir gérer le tour par tour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int main()
    {
       Partie game;
     
       /* chargement du nom des joueurs */
       ...
       ...
       /* fin du chargement */
     
       /* et là une boucle qui gère les tours */
       ...
    }
    Commence par coder, puis dis-nous où tu as un problème

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Par défaut Jeu de l'oie
    Je te donne mon cpp , j'ai déjà entrepris le menu , la phase de saisi et la fonction quitter .Pour information j'ai vu les string et les char .

  4. #4
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Salut,

    Tu as déjà fait une bonne part

    J'ai un peu restructuré, par exemple en mettant toutes les variables nécessaires dans la structure Partie.

    Il te reste à gérer ce qui se passe quand on arrive sur des cases spéciales ou qu'on va trop loin, et la sauvegarde.

    Pour la sauvegarde, il va falloir utiliser un fichier de sauvegarde (et la est une très bonne source sur les fichiers )
    Mais tu n'auras que le contenu de Partie à enregistrer.

    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
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    #include <cstdlib>
    #include <iostream>
     
    using namespace std;
     
    struct Partie
    {
        struct Joueur
        {
             string nom;
             char position;
        };
        bool tour; //0 si c'est au joueur 1, 1 si c'est au joueur 2
        Joueur player[2];
     
        void init();
    };
     
    void Partie::init()
    {
        tour = 0;
        player[0].position = 1;
        player[1].position = 1;
    }
     
    int menu()
    {
        int choix;
        cout<<"=== Menu ===\n\n";
        cout<<"1. Nouvelle Partie\n";
        cout<<"2. Reprendre\n";
        cout<<"3. Quuitter\n";
     
     
        cout<<"\nVotre choix ? ";
     
        do
        {
            cin>>choix;
        }
        while (choix<1 || choix>3);
     
        cout<<endl;
     
        return choix;
    }
     
    /*************************************************QUITTER**********************************************/
    bool quitter ()
    {
        string quit;
        do
        {
            cout << " Voulez-vous vraiment quitter? ( O / N ) " << endl;
            cin >> quit;
        }while (quit!="O" && quit!="N");
     
        if ( quit == "O" )
        {
            return true;
        }
        else
        {
            return false;
        }
    }
     
    void saisie(Partie &game)
    {
    ////////////////////////Saisie joueurs 1 et 2 //////////////////////////////////
        cout<<" Joueur 1 , veuillez saisir votre nom : ";
        cin>>game.player[0].nom;
        cout<<endl;
        cout<<" Joueur 2 , veuillez saisir votre nom : ";
        cin>>game.player[1].nom;
        cout<<endl;
     
        cout<<"Bonne Chance "<<game.player[0].nom<<" et "<<game.player[1].nom<<" , Que le meilleur gagne !"<<endl;
    }
     
    int nombre()
    {
        int n1;
        n1 = 1 + rand()%6;
     
        return (n1) ;
    }
     
    int jouer(Partie &game)
    {
        bool termine = false;
        int de1 = nombre();
        int de2 = nombre();
        cout << game.player[game.tour].nom << " lance les des: " << de1 << " " << de2 << endl;
        //On avance du bon nombre de cases
        game.player[game.tour].position += de1 + de2;
        cout << game.player[game.tour].nom << " est arrive a la case " << (int)game.player[game.tour].position << endl;
     
        //Là il faut gérer ce qui va se passer
        //en fonction de la position du joueur
        //qui est stockée dans
        //game.player[tour].position
        //Si jamais le jeu est terminé il faut mettre
        //true à termine
     
        //Puis fin du tour
        //On change de tour et on retourne termine
        game.tour = !game.tour;
        return termine;
    }
     
    int menu_jeu()
    {
        //initialisation des nombres aléatoires
        srand(time(NULL));
     
        int choix;
        cout<<"1. Lancer les des\n";
        cout<<"2. Sauvegarder et quitter\n";
        cout<<"3. Revenir au menu principal\n";
        cout<<"\nVotre choix ? ";
     
        do
        {
            cin>>choix;
        }
        while (choix<1 || choix>3);
     
        cout<<endl;
     
        return choix;
    }
     
    void sauvegarde(Partie &game)
    {
        //...
    }
     
    void lance_jeu(Partie &game)
    {
        //Saisie des noms
        saisie(game);
        //initialisation
        game.init();
        //Puis boucle de jeu
        bool sortie = false;
        do
        {
            cout << "\n************** Tour de " << game.player[game.tour].nom << "! **************" << endl;
            cout << game.player[game.tour].nom << " est a la case " << (int)game.player[game.tour].position << ".\n" << endl;
            int choix = menu_jeu();
            switch (choix)
            {
                case 1:
                    sortie = jouer(game);
                    break;
                case 2:
                    sauvegarde(game);
                case 3:
                    sortie = true;
                    break;
            }
        } while (!sortie);
    }
     
     
    int main(int argc, char *argv[])
    {
        Partie game;
        bool sortie=false;
        do
        {
     
            int choix;
            cout<<"************************Bienvenue au Jeu de L'oie************************"<<endl;
            cout<<endl;
            cout<<endl;
     
            choix=menu();
     
            switch (choix)
            {
                case 1 :
                    lance_jeu(game);
                    break;
                case 2 :
                    ;
                    break;
                case 3 :
                    sortie=quitter();
                    break;
            }
     
        }while (sortie==false);
     
     
        system("PAUSE");
        return EXIT_SUCCESS;
    }

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Par défaut Merci , le jeu de l'oie
    D'accord je vais faire ça , merci pour les renseignements

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    390
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 390
    Par défaut Re le jeu de l'oie
    Voilà j'ai réalisé les différentes contraintes , le programme marche bien mais je n'ai pas trouvé d'aide dans la FAQ pour la sauvegarde , si tu pouvais me donner un lien , s'iil te plait ......

    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
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    #include <cstdlib>
    #include <iostream>
     
    using namespace std;
     
    struct Partie
    {
        struct Joueur
        {
             string nom;
             char position;
        };
        bool tour; //0 si c'est au joueur 1, 1 si c'est au joueur 2
        Joueur player[2];
     
        void init();
    };
     
    void Partie::init()
    {
        tour = 0;
        player[0].position = 0;
        player[1].position = 0;
    }
     
    int menu()
    {
        int choix;
        cout<<"=== Menu ===\n\n";
        cout<<"1. Nouvelle Partie\n";
        cout<<"2. Reprendre\n";
        cout<<"3. Quuitter\n";
     
     
        cout<<"\nVotre choix ? ";
     
        do
        {
            cin>>choix;
        }
        while (choix<1 || choix>3);
     
        cout<<endl;
     
        return choix;
    }
     
    /*************************************************QUITTER**********************************************/
    bool quitter ()
    {
        string quit;
        do
        {
            cout << " Voulez-vous vraiment quitter? ( O / N ) " << endl;
            cin >> quit;
        }while (quit!="O" && quit!="N");
     
        if ( quit == "O" )
        {
            return true;
        }
        else
        {
            return false;
        }
    }
     
    void saisie(Partie &game)
    {
    ////////////////////////Saisie joueurs 1 et 2 //////////////////////////////////
        cout<<" Joueur 1 , veuillez saisir votre nom : ";
        cin>>game.player[0].nom;
        cout<<endl;
        cout<<" Joueur 2 , veuillez saisir votre nom : ";
        cin>>game.player[1].nom;
        cout<<endl;
     
        cout<<"Bonne Chance "<<game.player[0].nom<<" et "<<game.player[1].nom<<" , Que le meilleur gagne !"<<endl;
    }
     
    int nombre()
    {
        int n1;
        n1 = 1 + rand()%6;
     
        return (n1) ;
    }
     
    int jouer(Partie &game)
    {
        bool termine = false;
        int de1 = nombre();
        int de2 = nombre();
        cout << game.player[game.tour].nom << " lance les des: " << de1 << " " << de2 << endl;
        //On avance du bon nombre de cases
        game.player[game.tour].position += de1 + de2;
     
        if(game.player[game.tour].position == 9 ||game.player[game.tour].position==18 || game.player[game.tour].position==27 || game.player[game.tour].position==36 || game.player[game.tour].position==45 || game.player[game.tour].position==54)
        {
                                           game.player[game.tour].position = game.player[game.tour].position + (de1 + de2);
     
        }
        if(game.player[game.tour].position == 58 ) 
        {
                    game.player[game.tour].position=0;
     
        }
        if(game.player[game.tour].position==66)
        {
                     termine = true;
        }              
        if(game.player[game.tour].position >66)
        {
                                           game.player[game.tour].position = 66 - (game.player[game.tour].position - 66);
        }            
        //Là il faut gérer ce qui va se passer
        //en fonction de la position du joueur
        //qui est stockée dans
        //game.player[tour].position
        //Si jamais le jeu est terminé il faut mettre
        //true à termine
     
        cout << game.player[game.tour].nom << " est arrive a la case " << (int)game.player[game.tour].position << endl;
     
     
     
        //Puis fin du tour
        //On change de tour et on retourne termine
        game.tour = !game.tour;
        return termine;
    }
     
    int menu_jeu()
    {
        //initialisation des nombres aléatoires
        srand(time(NULL));
     
        int choix;
        cout<<"1. Lancer les des\n";
        cout<<"2. Sauvegarder et quitter\n";
        cout<<"3. Revenir au menu principal\n";
        cout<<"\nVotre choix ? ";
     
        do
        {
            cin>>choix;
        }
        while (choix<1 || choix>3);
     
        cout<<endl;
     
        return choix;
    }
     
    void sauvegarde(Partie &game)
    {
        //...
    }
     
    void lance_jeu(Partie &game)
    {
        //Saisie des noms
        saisie(game);
        //initialisation
        game.init();
        //Puis boucle de jeu
        bool sortie = false;
        do
        {
            cout << "\n************** Tour de " << game.player[game.tour].nom << "! **************" << endl;
            cout << game.player[game.tour].nom << " est a la case " << (int)game.player[game.tour].position << ".\n" << endl;
            int choix = menu_jeu();
            switch (choix)
            {
                case 1:
                    sortie = jouer(game);
                    break;
                case 2:
                    sauvegarde(game);
                case 3:
                    sortie = true;
                    break;
            }
        } while (!sortie);
    }
     
     
    int main(int argc, char *argv[])
    {
        Partie game;
        bool sortie=false;
        do
        {
     
            int choix;
            cout<<"************************Bienvenue au Jeu de L'oie************************"<<endl;
            cout<<endl;
            cout<<endl;
     
            choix=menu();
     
            switch (choix)
            {
                case 1 :
                    lance_jeu(game);
                    break;
                case 2 :
                    ;
                    break;
                case 3 :
                    sortie=quitter();
                    break;
            }
     
        }while (sortie==false);
     
     
        system("PAUSE");
        return EXIT_SUCCESS;
    }

Discussions similaires

  1. Jeu de l'oie
    Par lily59 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 04/11/2012, 00h10
  2. jeu de l'oie en C++
    Par LeouF3DH dans le forum C++/CLI
    Réponses: 0
    Dernier message: 10/06/2009, 15h05
  3. Créer une sorte de jeu de l'oie
    Par Devilju69 dans le forum Débuter
    Réponses: 1
    Dernier message: 29/01/2009, 12h10
  4. jeu de l'oie en flash
    Par pierro_r dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 08/12/2007, 13h06
  5. aide pour programmer jeu de l'oie en ruby
    Par waelgaaloul dans le forum Ruby
    Réponses: 1
    Dernier message: 03/12/2007, 19h08

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