Bonjour a tous !! je suis en train de programmer le mastermind en C, mais au niveau des couleur Bien Placé et Mal Placé qui dans mon code son des focntions, j'ai un peuti souci !!
Ici dans cette prmeiére parti je demande au joueur 1 de saisir son code de couleur !! le system("cls") me permet de passer à la page suivant ci dessousCode:
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 #include <stdio.h> #include <myconio.h> #include "fonction.h" int main() { int couleur,i,nbessai=1,BP,j, MP; char combinaison[5]; char copie[5]; char essai[5]; printf(" **********************************\n"); printf(" * *\n"); printf(" * *\n"); printf(" * MASTERMIND *\n"); printf(" * *\n"); printf(" * *\n"); printf(" * *\n"); printf(" **********************************\n"); printf("\n\n\n"); printf(" ---------------------------\n"); printf("La liste de couleurs est la suivante: | B - R - N - V - J - O - G | "); printf(" ---------------------------\n"); printf("\n\n\n"); printf("\n\n\n"); printf(" Joueur 1 saisir la combinaison de 5 couleurs: "); printf("\n\n\n"); printf("\n\n\n"); printf(" ___________________\n"); printf(" | | | | | | "); printf(" |___|___|___|___|___|"); printf("\n\n\n"); printf("\n\n\n"); couleur = 1; for(i=0;i<5;i++) { gotoxy(20,25); printf("Saisissez la couleurs %d ",couleur); gotoxy(19,25); printf("\n couleur : "); combinaison[i]=getch(); putchar(combinaison[i]); affichage(combinaison, couleur, i); couleur++; } system("cls");
Code:
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 printf(" **********************************\n"); printf(" * *\n"); printf(" * *\n"); printf(" * MASTERMIND *\n"); printf(" * *\n"); printf(" * *\n"); printf(" * *\n"); printf(" **********************************\n"); printf("\n\n\n"); printf(" ---------------------------\n"); printf("La liste de couleurs est la suivante: | B - R - N - V - J - O - G | "); printf(" ---------------------------\n"); printf("\n\n\n"); printf("\n\n\n"); printf("\n\n\n"); printf("\n\n\n"); printf(" ___________________\n"); printf(" | | | | | | "); printf(" |___|___|___|___|___|"); printf("\n\n\n"); printf("\n\n\n"); i=0; while(BP!=5) { couleur=1; for(i=0;i<5;i++) { gotoxy(13,18); printf("Saisissez votre essai %d",nbessai); gotoxy(12,18); printf("\n couleur %d : ",couleur); essai[i]=getch(); /*lecture du caractére*/ putchar(essai[i]); /*affichage du tableau*/ affichage1 (essai,couleur,i); copie[i]=essai[i]; /*le tablo copie recoi les caractére du tablo essai*/ couleur++; } BP = fonctionBP(combinaison, copie); MP = fonctionMP(combinaison, copie); gotoxy(20,33); printf("\n BienPlace=%d",BP); gotoxy(20,34); printf("\n MalPlace=%d\n",MP); nbessai++; } return 0; }
Sur cette page le joueur 2 doit essayé de trouver la combinaison de couleur , mais au niveau du calcul des focntionBP et FonctionMp il y a un problem , parceque sa maffiche un nombre astronomique :(
Vous verez ci desous les focntions
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 int fonctionBP( char tab1[5], char tab2[5]) { int i, BienP; for(i=0;i<5;i++) { if((tab1[i]==tab2[i]) || (tab2[i]=='Y') || (tab1[i]=='X')) { BienP++; tab1[i] = 'X'; tab2[i]='Y'; } } return BienP; }
Code:
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 int fonctionMP( char tab1[5], char tab2[5]) { int x, i, MalP; for(x=0;x<5;x++) { if (tab2[x]=='Y') { for(i=0;i<5;i++) { if(tab1[i]==tab2[x]) { MalP=MalP+1; tab1[i]='X'; tab2[x]='Y'; } } } } return MalP; }
Merci pour votre aide!!