Bonjour à tous et à toute,

Actuellement étudiant en BTS informatique, je doit dans le cadre de mes études coder le jeu du mastermind en c++.

Après des heures et des heures à ne pas comprendre comment réussir à résoudre mon problème je m'en remet à vous et vos conseils éclairés

Mon programme se lance, tourne mais mes fonctions "CalculBP" et "CalculMP" ne veulent pas fonctionner (l'erreur vient de la comparaison des deux tableaux je crois) et malgré toute mes recherches je ne sais plus quoi faire ...

Je dois utiliser de préférence les deux librairies dans mon code. Je vous ai copié l'intégralité du code si vous arrivez à m'aidez, je vous remercie d'avance

Bien Cordialement un petit développeur nommée Drum-Drumm.

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
#include <iostream>
#include <myconio.h>
 
using namespace std ; 
 
typedef char typeformule[5];
 
 
void afficheValeur(int x,int y, int val){ // permet d'afficher la valeur au coordonné voulu
    gotoxy(x,y) ; 
    cout<<val ; // val prendra la valeur du bien placer ou du mal placer
}
 
int CaractereValide(char c) { // Détermine si le caractere saisie correspond à un caractere valide
    int i = 0; 
    char VarCoul [7] = {'B','R','N','V','J','O','G'};
    for (i=0;i<6;i++){
        while (VarCoul[i] != c && i < 6){
            i++;
        }
        return (VarCoul[i] == c);
    }
}
 
char SaisieCouleur(int x, int y){ // Permet de saisie une couleur qui sera valider grâce a caractere valide
    char c ; 
    do {
        gotoxy(x,y) ; 
        c = getche();
    }while(!CaractereValide(c));
    return c;
}
 
 
int calculBP(typeformule VarEssai, typeformule VarCopie){ // fonction qui permet de verifier combien de coups sont bien place
    int i, cp;
     for (i=0;i<5;i++){
         if (VarCopie[i],(VarCopie[i] == 'X')){ // permet d'éviter de recalculer dans le vide à chaque saisie
             // i++;
         }else{
             if ((VarEssai[i] == VarCopie[i])){
                 cp = cp + 1; // compteur des coup bien place
                 VarCopie[i] = 'X';                 
             }
         }
    }
    return cp ;
}
 
int calculMP(typeformule VarEssai, typeformule VarCopie){ // fonction qui permet de verifier combien de coups sont mal place
     int i, j, cl;
     for (i = 0; i < 5; i++){
         for (j = 0; j < 5; j++){
             if (VarEssai[i] == VarCopie[j]){
                 cl = cl + 1; //compteur des coup mal place
                 VarEssai[i] = 'X';
                 VarCopie[j] = 'Y';
             }
        }
    }
    return cl;
}
 
 
 
 
 
 
 
 
 
 
int main() {
    typeformule VarCopie, VarEssai, VarOriginal ;
    int x, y, i, nbessai, ligne;
    char c;
    int cp, cl ;
 
    ligne = 7 ;// me permet de faire varier ma ligne pour chaque essai
    nbessai = 0; // initialise le nombre d'essai
    gotoxy(25,1); // afficher une phrase de bienvenue
    cout<<"Welcome to the MasterMind";
    gotoxy(1,3); // afficher la phrase d'accroche
    cout<<"Entrer votre code secret :"; 
 
    for(i=0;i<5;i++){ // permet de saisir nos valeurs 
        VarOriginal[i] = SaisieCouleur(30+i*4,3);
        gotoxy(30+i*4,3); cout<<"X"; // permet de cacher les lettre compose sans devoir effacer l'écran
        VarCopie[i] = VarOriginal[i] ; // VarCopie prend les valeurs de VarOrignal
    }
    //     gotoxy (1,5);     cout<<VarCopie[2] ; test
     gotoxy (1,5); cout<<"Joueur deux veuillez trouver la combinaison";
 
    do {
        gotoxy(1,ligne); // mettre une variable pour descendre d'une ligne à chaque fois 
        cout<<"Dechiffrer le code secret :"; 
        for(i=0;i<5;i++){ // permet de saisir nos valeurs 
            VarEssai[i] = SaisieCouleur(30+i*4,ligne);
        }
        calculBP(VarCopie, VarEssai); // calcul les bien palcer
        calculMP(VarEssai, VarCopie); // calcul les mal placer
        afficheValeur(50,ligne, calculBP(VarEssai, VarCopie)); // afficher le nombre de coup bien placer 
        afficheValeur(55,ligne, calculMP(VarEssai, VarCopie)); // affiche le nombre de coup mal plcer
        nbessai ++;
        ligne ++;
 
    }while (calculBP(VarEssai, VarCopie) != 5); // affiche une phrase de fin 
    if (nbessai <= 5 ) {
        gotoxy(1,ligne + 1); cout<<"Bravo, vous avez reussi en", nbessai ," coups ! Vous êtes vraiment génial ! "; // compteur nbessai ne veux pas marcher
 
    } else { 
        if (nbessai <= 10) {
            gotoxy(1,ligne + 1);cout<<"Pas trop mal mon petit mais te reste encore des efforts.";
        } else {
            gotoxy(1,ligne + 1);    cout<<"t'es vraiment bidon en faite !";
        }
    }
 
}