Jeu Mastermind en C qui fonctionne mais affichage particulier
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Jeu Mastermind en C qui fonctionne mais affichage particulier



  1. #1
    Rubzouz

    Cool Jeu Mastermind en C qui fonctionne mais affichage particulier


    ------

    Bonsoir a tous, ci-après le code du jeu mastermind en c. J'utilise CodeBlocks. Le jeu se lance très bien mais apres la saisie des 5 chiffres de l'utilisateur le système indique quelles postions sont justes,fausses, inexistantes etc... Ce qui est très bien! sauf que le probleme reside dans le fait qu'il affiche deux fois ces indications sur une seule ligne et que les 2 indications ne sont pas les memes et que seulement la deuxieme indication de la ligne est juste.
    Je ne comprend absolument pas ce wtf.
    Pouvez-vous m'aider?

    merci d'avance

    Code:
    #include <iostream>
    #include <ctime>    // pour la fonction time()
    #include <cstdlib>  // pour la fonction srand() and rand()
    using namespace std;
    void accueil();
    void prompt(int guess[], int n);
    bool gaveOver(int guess[], int right[]);
    
    
    
    
    int main(void)
    {
        char symbol;
        int guess[5];
        int right[5];
        bool playAgain = true;
        bool won;
        int numGuesses;
        int maxGuesses;
    
    
        accueil();
    
    
    
        while (playAgain) {
            won = false;
            numGuesses = 1;
            maxGuesses = 10;
    
            // genere la bonne combinaison
            srand(time(0));
            for (int i = 0; i < 5; i++)
            {
                right[i] = rand() % 10;
            }
            // loop le temps que le joueur a les bonnes valeurs
            while (!won && numGuesses <= maxGuesses)
            {
                  prompt(guess, numGuesses);
                  won = gaveOver(guess, right);
                  numGuesses++;
            }
    
            if (won)
            {
               cout << "Vous avez gagne! La bonne combinaison est bien: " << right[0] << " "
                    << right[1] << " " << right[2] << " " << right[3] << " " << right[4]  << endl;
            }
            else
            {
                cout << "Vous avez perdu! La bonne combinaison etait : " << right[0] << " "
                     << right[1] << " " << right[2] << " " << right[3] << " " << right[4] << endl;
            }
    
            cout << "Voulez-vous rejouer? (O or N): ";
    
            cin >> symbol;
    
            playAgain = (symbol == 'O' || symbol == 'o') ? true : false;
        }
        cout <<" J'espere le jeu vous a plu! A bientot! "<< endl;
        return 0;
    } // fin main
    
    bool gaveOver(int guess[], int right[])
    {
         int totalRight = 0;
         int rightColor = 0;
         int grab;
         bool exclude[5];
         bool excludeColor[5];
         bool inList = false;
     string result="_____";
         for (int i = 0; i < 5; i++)
         {
             exclude[i] = false;
             excludeColor[i] = false;
         }
    
         // loop pour determiner lesquels ont le bon numero et la bonne position
         for (int i = 0; i < 5; i++)
         {
             if (guess[i] == right[i])
             {
                totalRight++;
                result[i]='X';
                exclude[i] = true;
             }
         }
    
         // loop pour determiner si un numero est bon mais de mauvaise position
         for (int i = 0; i < 5; i++)
         {
             if (!exclude[i])
             {
                for (int j = 0; j < 5; j++)
                {
                    if (!exclude[j] && i != j)
                    {
                       if ((guess[i] == right[j]) && !excludeColor[j])
                       {
                          inList = true;
                          grab = j;
                       }
                    }
                }
    
                if (inList)
                {
                   rightColor++;
                    result[i]='O';
                   inList = false;
                   excludeColor[grab] = true;
                }
             }
    
    
    
         }
    
         if (totalRight == 5)
            return true;
         else
         {
             for(int i = 0; i < totalRight; i++) {
                cout << "X ";
             }
             for(int i = 0; i < rightColor; i++){
                cout << "O ";
             }
             for(int i = 0; i < 5 - totalRight - rightColor; i++) {
                cout << "_ ";
             }
             cout<<"       "<<result<<endl;
            return false;
         }
    
    } // fin gameOver
    
    void prompt(int guess[], int n)
    {
         cout << " Entrez 5 chiffres separement pour proposer votre combinaison (Tentative " << n << "): ";
    
         cin >> guess[0] >> guess[1] >> guess[2] >> guess[3] >> guess[4] ;
    
    
         for (int i = 0; i < 5; i++)
         {
            guess[i] %= 10;
         }
    
    } // fin prompt
    
    void accueil()
    {
        cout << "=================================================== Mastermind Game ==================================================="<<  endl;
        cout << "" <<endl;
        cout << "  Trouvez la bonne combinaison de 5 chiffres determine par l'ordinateur" << endl;
        cout << " Apres chaque combinaison saisi vous verrez quels chiffres ne sont pas dans la combinaison"<< endl;
        cout << " quels chiffres sont bien ou mal places ou ceux que vous n'avez pas encore saisi" << endl;
        cout << " Les chiffres a saisir sont 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 " << endl;
        cout << "" <<endl;
        cout << "  Interpretation des resultats obtenus:" << endl;
        cout << " X -> pion de la combinaison en bonne position"<<endl;
        cout << " O -> pion de la combinaison en mauvaise position"<<endl;
        cout << " _ -> pion qui ne figure pas dans la combinaison"<<endl;
        cout << "" <<endl;
        cout << "  Vous avez le droit a 10 essais, attention ils sont comptes!" << endl;
    
    
    }

    -----

  2. #2
    Jack
    Modérateur

    Re : Jeu Mastermind en C qui fonctionne mais affichage particulier

    Plus de son, plus d'image dans cette discussion. Ce sera sans moi.

  3. #3
    pm42

    Re : Jeu Mastermind en C qui fonctionne mais affichage particulier

    Citation Envoyé par Jack Voir le message
    Plus de son, plus d'image dans cette discussion. Ce sera sans moi.
    Merci pour la piqure de rappel, je n'avais pas fait le lien. Du coup, je passe mon tour aussi.

  4. #4
    Rubzouz

    Re : Jeu Mastermind en C qui fonctionne mais affichage particulier

    Ah merci de votre aide les gars

  5. A voir en vidéo sur Futura
  6. #5
    pm42

    Re : Jeu Mastermind en C qui fonctionne mais affichage particulier

    Citation Envoyé par Rubzouz Voir le message
    Ah merci de votre aide les gars
    La dernière fois qu'on a essayé de t'aider, tu t'es barré sans même répondre et on n'a plus jamais eu de nouvelles.
    Ca ne motive pas à recommencer.
    Essaie d'apprendre la politesse élémentaire avant la programmation.
    Dernière modification par pm42 ; 22/01/2018 à 07h00.

  7. #6
    goaoute

    Re : Jeu Mastermind en C qui fonctionne mais affichage particulier

    Citation Envoyé par Rubzouz Voir le message
    Ah merci de votre aide les gars
    Splendeur et misères de la désinvolture.

  8. #7
    Rubzouz

    Re : Jeu Mastermind en C qui fonctionne mais affichage particulier

    ok merci beaucoup

  9. #8
    goaoute

    Re : Jeu Mastermind en C qui fonctionne mais affichage particulier

    Citation Envoyé par Rubzouz Voir le message
    ok merci beaucoup
    Bon vu ta relative humilité et comme on est pas des chiens
    Va voir là: --> http://www.jeuxvideo.com/forums/0-47...grammation.htm
    Et là -->: (fais gaffe là, c'est des pros): https://www.developpez.net/forums/f6...algorithmique/

  10. #9
    goaoute

    Re : Jeu Mastermind en C qui fonctionne mais affichage particulier


  11. #10
    Rubzouz

    Re : Jeu Mastermind en C qui fonctionne mais affichage particulier

    merci beaucoup goaoute!

Discussions similaires

  1. [Blanc] Mon affichage de mon four de dietrich ne fonctionne plus
    Par janot6800 dans le forum Dépannage
    Réponses: 9
    Dernier message: 10/07/2015, 10h05
  2. Réponses: 3
    Dernier message: 27/12/2014, 19h48
  3. [Blanc] Four Rosières Rosana : l'affichage ne fonctionne plus ?
    Par invite7a620651 dans le forum Dépannage
    Réponses: 1
    Dernier message: 21/07/2012, 17h18
  4. [Blanc] Four Sauter SFP 420 : ne fonctionne plus pas d'affichage ? [résolu]
    Par chrisray71 dans le forum Dépannage
    Réponses: 25
    Dernier message: 12/01/2012, 19h38
  5. mes javascript:popupimage ne fonctionne pas sur mon site web mais fonctionne en local
    Par invite4ff499e4 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 6
    Dernier message: 28/01/2006, 17h31