Mastermind en C

Fermé
rafale69300 Messages postés 84 Date d'inscription vendredi 31 octobre 2008 Statut Membre Dernière intervention 15 juin 2010 - 29 janv. 2009 à 19:27
rafale69300 Messages postés 84 Date d'inscription vendredi 31 octobre 2008 Statut Membre Dernière intervention 15 juin 2010 - 30 janv. 2009 à 15:44
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

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 vendredi 31 octobre 2008 Statut Membre Dernière intervention 15 juin 2010 2
29 janv. 2009 à 19:48
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 vendredi 31 octobre 2008 Statut Membre Dernière intervention 15 juin 2010 2
29 janv. 2009 à 20:43
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 vendredi 31 octobre 2008 Statut Membre Dernière intervention 15 juin 2010 2
30 janv. 2009 à 15:44
Quelqu'un peut il m'aider pour la gestion des mal nombre mal placé s'il vous plait ? Merci d'avance
0