MASTERMIND[DEV C++]

bayarno Messages postés 14 Statut Membre -  
bayarno Messages postés 14 Statut Membre -
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. bibnowhere Messages postés 46 Statut Membre 4
     
    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
  2. bayarno Messages postés 14 Statut Membre
     
    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
  3. bayarno Messages postés 14 Statut Membre
     
    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