Igor012
Messages postés7Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention15 avril 2007
-
31 mars 2006 à 17:57
Igor012
Messages postés7Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention15 avril 2007
-
31 mars 2006 à 18:25
Salut a tous,
j'ai un problème en C. j'essaie de faire un jeu de masterMind mais il y a un problème au niveau de la decouverte des pions blancs je ne sais pas comment faire pour que ca fonctionne.
exemple : je choisi la combinaison J O B M (M mauve B bleu J = jaune O = orange)
et ensuite je saisis disons O B J M
il me donne le resultat : noirs : 0 blancs 0 alors que ca devrait etre : noirs : 0 blancs : 4
noir ->bien placé
blanc ->mal placé
Merci de votre aide
Fab
voila mon code j'espere que ce sera lisible
#include <stdio.h> // librairie d'entrée et de sortie
#include
#include <stdlib.h>
#include <conio.h>
main()
{
char tabcoul[4],tabresult[4]; // déclaration des tableaux des joueurs 1 et 2
int i,j,k,n,z; // déclaration des variables (compteurs)
int verif[4]; // déclaration du tableau de vérification
int blanc;
int noir;
puts("\n");
puts("\n");
puts("\n");
puts("JOUEUR 1\nA vous de commencer\n");
puts("Choisissez une combinaison de 4 couleurs en utilisant les couleurs suivantes: \n V =vert \n O=orange \n B=bleu \n R=rouge \n J=jaune \n M=mauve\n");
for (i=1;i<5;i++)//remplir le tableau des couleur à trouver
{
fflush(stdin); // rafraichir la mémoire tampon
printf("Saisir couleur %d:\n",i);
scanf("%c",&tabcoul[i]);
while (tabcoul[i]!='V' && tabcoul[i]!='O' && tabcoul[i]!='B' && tabcoul[i]!='R' && tabcoul[i]!='J' && tabcoul[i]!='M')
{
puts("Caractere incorrect. Veuillez resaisir :");
fflush(stdin); // rafraichir la mémoire tampon
printf("Saisir couleur %d:\n",i);
scanf("%c",&tabcoul[i]);
}
}
printf("\n");
printf("Vous avez choisi :\n");
printf("\n");
for (i=1;i<5;i++)
{
printf(" - %c - ",tabcoul[i]);//affiche les couleurs choisies
}
printf("\n");
printf("\n");
system("\nPAUSE\n");
system("CLS");
puts("JOUEUR 2 \nA vous de trouver la combinaison \n");
for (j=1;j<11;j++)
{
printf("\nEssai No. %d :\n", j);
for (k=1;k<5;k++)
{
fflush(stdin); // rafraichir la mémoire tampon
printf("Saisir couleur %d:\n",k);
scanf("%c",&tabresult[k]);
while (tabresult[k]!='V' && tabresult[k]!='O' && tabresult[k]!='B' && tabresult[k]!='R' && tabresult[k]!='J' && tabresult[k]!='M')//empeche de saisir n'importe quel caractere
{
puts("Caractere incorrect. Veuillez resaisir :");
fflush(stdin); // rafraichir la mémoire tampon
printf("Saisir couleur %d:\n",k);
scanf("%c",&tabresult[k]);
} // fin while
} //fin for k
noir=0;
blanc=0;
for(n=1;n<5;n++)
{
if(tabcoul[n]==tabresult[n])//compare deux tableau si vrai noir=noir+1
{
noir++;
}
else
{
if(tabcoul[n]==tabresult[0] && tabcoul[n]==tabresult[1] && tabcoul[n]==tabresult[2] && tabcoul[n]==tabresult[3])//compare pour les blancs si vrai: blanc++
{
blanc++;
} //fin si
} //else - fin sinon
}// fin for n
printf("Noirs : %d\n",noir);
printf("Blancs : %d\n",blanc);
Igor012
Messages postés7Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention15 avril 2007 31 mars 2006 à 18:25
Merci pour ta réponse rapide ca marche deja beaucoup mieux mais selon l'odre des combinaison ca ne donne pas toujours le meme resultat
ex :
je choisis J O M B et je saisis O M B J
je devrais voir apparaitre
noirs : 0
blancs: 4
mais ca donne
Noirs : 0
Blancs : 3