Mastermind en C

rafale69300 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   -  
rafale69300 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, voici ce que j'ai codé en C mais j'ai un petit probème au niveau des mal placé dans ma procédure analyse et pour la fonction aléatoire pour le tirage de l'ordinateur je ne m'en suis pas encore occupé je fais saisir les valeurs pour le moment. Merci d'avance pour votre aide.
Voici mon code :

#include<stdio.h>
#include<stdlib.h>
#define MAX 5

void tirage(int Tordi[]);
void saisie_proposition(int Tpropo[]);
void analyse(int Tordi[], int Tpropo[], int *ptnbbp, int *ptnbmp);
void afficher_selection(int Tordi[]);

int main(void)
{
	int nbbp, nbmp, cpt, Tordinateur[MAX], Tproposition[MAX];
	char rep[2];
	nbbp=nbmp=0;
	tirage(Tordinateur);
	cpt=0;
	do
	{
		saisie_proposition(Tproposition);
		analyse(Tordinateur,Tproposition,&nbbp,&nbmp);
		printf("\n%d bien placé(s) et %d mal placé(s)",nbbp,nbmp);
		cpt++;
		if(nbbp==5)
		{
			printf("\ngagné!!");
		}
		else
		{
			printf("\n voulez vous réessayer?");
			scanf("%s",&rep);
		}
		if(cpt>=10)
			printf("\nVous n'aviez que 10 tentatives.Fin!");

		
	} while(rep[0]=='o'&& cpt<10 && nbbp!=5);
	afficher_selection(Tordinateur);
}


void tirage(int Tordi[])
{
	int i;
	for(i=0;i<=MAX-1;i++)
	{
		printf("\nSaisir une valeur");
		scanf("%d",&Tordi[i]);
	}
}


void saisie_proposition(int Tpropo[])
{
	int i;
	for(i=0;i<=MAX-1;i++)
	{
		printf("\nSaisir le nombre");
		scanf("%d",&Tpropo[i]);
		while(Tpropo[i]<1 || Tpropo[i]>8)
		{
			printf("\nLe nombre doit être compris entre 1 et 8");
			printf("Ressaisir un nombre");
			scanf("%d",&Tpropo[i]);
		}
	}
}



void afficher_selection(int Tordi[])
{
	int i;
	printf("\nLa solution était:");
	for(i=0;i<=MAX-1;i++)
	{
		printf("%d",Tordi[i]);
	}

}


void analyse(int Tordi[], int Tpropo[], int *ptnbbp, int *ptnbmp)
{
	int i,k;
	*ptnbbp=*ptnbmp=0;
	for(i=0;i<=MAX-1;i++)
	{
		if(Tordi[i]==Tpropo[i])
			(*ptnbbp)++;

	}
	for(k=0;k<=MAX-1;k++)
	{
		for(i=0;i<=MAX-1;i++)
		{
			if(Tpropo[k]=Tordi[i])
				(*ptnbmp)++;

		}
	}
	
}

4 réponses

loupius
 
Je répond car personne ne le fait.
- 'scanf("%s",&rep);' faut il faut mettre: 'scanf("%s",rep);'
- 'int main' implique 'return ...'
Pour ce qui est de l'utilisation des scanf, si fiddy passe par là, il t'expliquera très bien que c'est pas terrible ;=)
0
rafale69300 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci pour le return EXIT_SUCCESS j'avais complètement oublié et merci aussi pour les scanf.
0
rafale69300 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   2
 
Quelqu'un peut il m'aider pour la gestion des mal nombre mal placé s'il vous plait ?
0
rafale69300 Messages postés 84 Date d'inscription   Statut Membre Dernière intervention   2
 
Quelqu'un peut il m'aider pour la gestion des mal nombre mal placé s'il vous plait ? Merci d'avance
0