MASTERMIND[DEV C++]

Bonjour,
je suis débutant sur C++ et j'utilise devC++
j'essaye des crée de petits jeux mais devant ce lui la je bloque
merci de m'aider



comment crée le jeux master mind sur c++
il y a une combinaison de couleur a trouver
les couleurs possible sont 4 : r b v j
je jeu doit afficher le nombre de couleur qui sont a leur position et le nombre de couleur mal positionner
exemple pour le code rbvj
quand je tape bvvj
l' affichage est comme le suivent
couleur identique :2
couleur mal positionner :1
c'est l'utilisateur qui choisir la combinaison
et il y a le droit a 6 essai pas plus
et si sa de combinaison est toute juste avant le 6ém essai
l'affiche est "gagner" sinon "perdu"
apparemment ca ce fait avec un tableau non !
merci

3 réponses

  1. Bonjour bayarno,

    En effet pour réaliser un mastermind en C/C++ il faut utiliser un tableau.

    Je vous donne juste la déclarations des variables et vous laisse chercher la suite (et oui en développement, on passe beaucoup de temps à chercher,se creuser les méninges et c'est cela son plus grand charme :-))

    char combinaison[5]; // tableau contenant les 5 couleurs à trouver
    char copie[5] // tableau contenant la copie du tableau combinaison
    char essai[6] // tableau contenant chacun des essais
    int i, // indice de parcours des tableaux
    nbEssai // compteur d'essai avant de trouver la formule
    bp, mp // compteurs de bien et mal placés

    Bon courage pour la mise en place de ce petit jeu.

    Bien cordialement.

    BibNowhere
    1
    1. j'ai fait ca mais il y a plein de problèmes

      merci bibnowhere ca m'a aidé ce que tu m' a écrie
      j'ai pas trouvé d' autre solution qu'avec ces 3 whiles
      ca cree une boucle infinie en cas de mauvaise réponse
      je suis perdu !!

      #include <stdio.h>
      #include <stdlib.h>
      #include <time.h>
      #define NBCOUL 4
      #define NBESS 6

      main()
      {
      char codeSecret[NBCOUL] ; // tableau contenant les 4 couleurs à trouver
      //char copie[NBCOUL] ; // tableau contenant la copie du tableau combinaison
      char reponse,essai[NBESS] ; // tableau contenant chacun des essais
      int i , k, n ; // indice de parcours des tableaux
      int test, nbEssai; // compteur d'essai avant de trouver la formule
      int bb=0, mm=0 ,NBCOUL ; // compteurs de bien et mal placés

      srand(1810)

      for(i=0;i<BNCOUL;i++)
      {
      switch(rand()%4){
      case 0: codeSecret[i]='r';break;
      case 1: codeSecret[i]='b';break;
      case 2: codeSecret[i]='v';break;
      case 3: codeSecret[i]='j';break;
      }
      }

      do {

      do{
      do{

      printf("Entrez votre combinaison : " );
      scanf("%c", essai[n]);
      n++;
      }
      while (n < NBCOUL);

      /* boucle pour les valeurs presentes et bien placees*/
      n=0;
      i=0;
      for {(j = 0; j < NBCOUL; j++)
      if {essai[n] == codeSecret[i] && n == i
      bb++; }
      n++;
      i++;
      }
      printf("Couleur identique: %d",bb);
      /* boucle pour les valeurs presentes mais mal placees */
      n=0;
      i=0;
      for (j = 0; j < NBCOUL; j++){
      if {essai[n] == codeSecret[i] && n != i
      mm++; }
      n++;
      i++;
      }
      printf("Couleur presentes : %d",mm);

      test++;

      }
      while (bb<NBCOUL);
      printf("\nVous avez gagne " )

      }
      while (test<NBESS)
      printf("\nVous avez perdu " )};

      /* Demander si l'usager veut continuer */
      printf("\nVoulez-vous continuer ? (o/n) " );
      scanf(" %c", &reponse);
      }
      while (reponse == 'o' || reponse == 'O');
      if (reponse == 'n' || reponse=='N' ) printf("Fin " );

      system("pause" );
      }
      0
      1. peur etre c'est mieux comme ca mais tjr
        des fautes a gogo

        /*

        */

        #include <stdio.h>
        #include <stdlib.h>
        #include <time.h>
        #define NBCOUL 4
        #define NBESS 6

        main()
        {
        char codeSecret[NBCOUL] ; // tableau contenant les 4 couleurs à trouver
        //char copie[NBCOUL] ; // tableau contenant la copie du tableau combinaison
        char reponse,essai[NBESS] ; // tableau contenant chacun des essais
        int i , k, n ; // indice de parcours des tableaux
        int test; // compteur d'essai avant de trouver la formule
        int bb=0, mm=0 ; // compteurs de bien et mal placés

        srand(1810)

        for(i=0;i<NBCOUL;i++)
        {
        switch(rand()%4){
        case 0: codeSecret[i]='r';break;
        case 1: codeSecret[i]='b';break;
        case 2: codeSecret[i]='v';break;
        case 3: codeSecret[i]='j';break;
        }
        }

        // Le do pour rejouer
        do {

        // 6 Essais Max
        for (test = 0; test < NBESS; test++){
        do{
        do{

        printf("Entrez votre combinaison : " );
        scanf("%c", &essai[n]);
        n++;
        }
        while (n < NBCOUL);

        // boucle pour les valeurs presentes et bien placees
        n=0;
        i=0;
        for (j = 0; j < NBCOUL; j++)
        {
        if (essai[n] == codeSecret[i] && n == i)
        {
        bb++;
        }
        n++;
        i++;
        }
        printf("Couleur identique: %d",bb);
        // boucle pour les valeurs presentes mais mal placees
        n=0;
        i=0;
        for (j = 0; j < NBCOUL; j++)
        {
        if (essai[n] == codeSecret[i] && n != i)
        {
        mm++;
        }
        n++;
        i++;
        }
        printf("Couleur presentes : %d",mm);

        }
        while (bb<NBCOUL);
        printf("\nVous avez gagne ");

        }
        printf("\nVous avez perdu ");

        // Afficher la combinaison pour le perdant
        if (bb<NBCOUL)
        {
        printf("\nLa combinaison etait %c %c %c %c ",codeSecret[0],codeSecret[1],codeSecret[2],codeSecret[3] );
        }

        // Demander si le joueur veut rejouer
        printf("\nVoulez-vous rejouer ? (o/n) ");
        scanf(" %c", &reponse);
        }
        while (reponse == 'o' || reponse == 'O');
        if (reponse == 'n' || reponse=='N' ) printf("Fin du jeu ");

        system("pause");
        }
        0