Bonjour a toutes et a tous,

Voila, je doit réaliser un Mastermind en C++ qui globalement consiste a sa:

Réaliser une application qui choisit au hasard une combinaison de 5 chiffres (compris entre 1 et 8) et qui propose à l’utilisateur de découvrir ce « code » secret.

A chaque proposition du joueur, le programme précisera :

- Le nombre de chiffres exacts proposés à la bonne place
- Le nombre de chiffres exacts mais proposés à la mauvaise place.
- Si l'utilisateur saisit une valeur incorrecte (6 chiffres, 1 lettres, un 0 ou 9), cela comptera comme une erreur et passera son tour.

Si le code est découvert, le programme indiquera le nombre de coups tentés ; sinon, après 15 échecs, le programme s’arrêtera et indiquera au joueur la combinaison correcte.


Pour le moment j'obtiens sa:

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
120
121
 
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
using namespace std;
#define maxnom 20
 
 
int main()
{
	int nb_essais=0,nb,j, i, cpt;
    int correct=0, malplace=0;
    int entree[5], tmpcode[5];
	char code[6],essai[2],nom[2][maxnom];
    nb=0;
	i=0;
	j=0;
	cpt=0;
    rewind(stdin);
	srand(time(0));
		//determination de la valeur à découvrir
	for(j=0;j<5;j++)
	{
		code[j]=(rand()%8)+1;
		printf("%d",code[j]);
	}
		//saisie des noms des 2 joueurs
	for(j=1;j<=2;j++)
	{
	printf("\nVeuillez saisir le nom du joueur %d: ",j);
	scanf("%s", &nom[j]);
 
 
	}
 
		//début du jeux
	i=0;
	j=0;
    do
	{
    		//stockage de la valeur a trouver dans une variable temporaire
         for (i=0; i<5; i++)
		 {
           tmpcode[i]= code[i];
		 }
 
			//saisie des propositions des joueurs
 		 for(j=1;j<=2;j++)
		 {	
 
			printf("\nJoueur %s entrez votre proposition (5 chiffres): \n",nom[j]);
			scanf("%s",&essai[j]);
			cpt=0;
			cpt=strlen(essai)-1;
			nb_essais++;
			printf("%d ",cpt);
		  }
 
 
			   //transposition de la valeur à trouver dans un tableau afin de faire les comparaisons 
		 for(i=4; i>=0; i--)
			{
				entree[i]= essai[i] % 10;
				essai[i] /= 10;
			}
 
			correct=0;
				//tri du tableau afin de determiner les valeurs bien placées
 
			for (i=0; i<5; i++)
			{
				  for (int j=0; j<5; j++)
				  {
					 if ((j != i) && (entree[i]==tmpcode[j]))
					 {
					   malplace++;
					   entree[i]= -1;
				       tmpcode[j]= -2;
					   break;
					 }
				  }
			}
 
			 malplace=0;
				//tri du tableau afin de determiner les valeurs bonne mais mal placées
 
			 for (i=0; i<5; i++)
				{
					 if ((j != i) && (entree[i]==tmpcode[j]))
						 {
							malplace++;
						    entree[i]= -1;
					        tmpcode[j]= -2;
						 }
				}
 
				printf("Vous avez %d chiffres bien place(s)%d mal place(s)\n",correct,malplace);
 
			} while ((nb_essais < 15) && (correct != 5));
 
 
	      if(nb_essais == 16)
	       {
			     printf("Plus de 16 essais, vous avez perdu. Le code etait \n");
			     for (i=0; i<5; i++)
				 {
					printf("%d",code[i]);
				 }
		    }
		   else if(correct == 5)
				{	
					printf("Gagne ! Nb d'essais : %d\n ",nb_essais );
			    }
 
 
 
	 system("pause");
	 return 0;
 
   }

Le problème c'est que lorsque je réalise des essais, il me dit qui n'y a aucune bonne réponse et/ou aucune mal placé.

C'est donc pour sa que je fait appel à vous dans l'espoir que vous pourrez m'aider.

Cordialement