Posez votre question Signaler

Exercice en C

perdue - Dernière réponse le 13 déc. 2007 à 17:09
Bonjour, j'ai fait un programme sur le jeu mastermind ,pourrait-on me corriger ou améliorer si quelque chose ne va pas ?
merci
#include <stdio.h>
#include <stdlib.h>
/* fonction qui determine si tous les chiffres saisies sont bien
compris entre 1 et 7 inclus */
int BonneSaisie(int n,int T[])
{ int i;
for (i=1;i<n+1;i++)
{if (T[i]<0 || T[i]>7)
return 0;
}
return 1;
}
/* la fonction que voulez vous faire?*/
int QueFaire ()
{
int rep;
printf("que voulez vous faire ? :\n\n");
printf(" JOUER 1\n");
printf(" REJOUER LE MEME 2\n");
printf(" DONNER LA SOLUTION 3\n");
printf(" QUITTER 4\n\n");
scanf("%d",&rep);
return rep;
}
/*la fonction nombres aléatoires aleatoirement */
void SaisieInitiale(int n,int T[])
{
int i;
for (i=1;i<n+1;i++)
{
T[i]=( (rand()%7)+1);
}
}
/* fonction afficher le tableau initiale*/
void Afficher_Saisie_Initiale(int n, int T[])
{
int i;
for (i=1;i<n+1;i++)
{
printf("%d ",T[i]);
}
printf("\n\n\n");
}
/* fonction qui demande nombre */
void SaisieJoueur(int n, int Tbis[])
{
int i;
printf("\n\n entrez vos quatres valeur separes par un espace :\n");
for (i=1;i<n+1;i++)
{
scanf("%d",&Tbis[i]);
}
if (0==BonneSaisie(n,Tbis))
{
printf(" erreur dans vos chiffres: nouvelle saisie :");
SaisieJoueur(n, Tbis);
}
}
/*passons a la fonction copie qui copie le tableau initiale
affin qu´on puisse y travailler dessus*/
//nouvelle version
void Copie (int n, int T[],int T1[])
{
int i;
for (i=1;i<n+1;i++)
{
T1[i] = T[i];
}
}
/*passons maintenant aux fonctions plus précise
qui va nous indiquer
combien de chiffres sont bien placé */
int BienPlace(int n, int T[], int T1[])
{
int i;
int bp=0;
for (i=1;i<n+1;i++)
{
if (T[i]==T1[i])
{
bp+=1;
T[i]=9; //on remplace par 9 pour ne pas le compter deux fois
T1[i]=9;
}
} //ici aussi
return bp;}
/*maintenant les mal placé*/
int MalPlace(int n,int T[],int T1[])
{
int i,j,mp=0;
for (i=1;i<n+1;i++)
{
for (j=1;j<n+1;j++)
{
if (T[i]==T1[j]/*&& i!=j */&& T[i]!=9 && T1[j]!=9)
{
mp+=1;
T[i] = 9; //on remplace ici aussi par 9
T1[j] = 9;}
}
} //ici aussi
return mp;
}
/*ecrivons une fonction qui determine si le ta bleau comporte que des 0*/
int FIN(int n, int T[])
{
int i;
for (i=1;i<n+1;i++)
{
if (T[i] == 0)
return 0;
}
return 1;
}
/*attaquons le gros du sujet mais toujour pas la fonction main*/
void mastermind()
{
int nbfoix=0; int T[5];int bpf=0;int nbfoixmax=12;
SaisieInitiale(5,T); //saisie aleatoirement les numero
AfficherSaisieInitiale(5,T); //a ne pas laisser dans la version finale
while (bpf != 5)
{
int Tbis[5];
SaisieJoueur(5,Tbis);
if (0==FIN(5,Tbis))
{
printf("vous avez decide d arreter a bientot\n");
break;}
nbfoix+=1;
// AfficherSaisieInitiale(5,Tbis);
/*int Tcop[5];
copie(5,T);*/
int Tcop[5];
/*debut de la copie manuelle*/
/* Tcop[1]=T[1];
Tcop[2]=T[2];
Tcop[3]=T[3];
Tcop[4]=T[4];
Tcop[5]=T[5];*/
// AfficherSaisieInitiale(5,Tcop);
/*fin de la copie manuelle*/
Copie(5,T,Tcop);
bpf=BienPlace(5,Tcop,Tbis);
printf("il y a %d chiffres bien places" ,bpf);
printf("\n");
printf("il y a %d chiffres mal places\n",MalPlace(5,Tcop,Tbis));
if (nbfoix==nbfoixmax) {
printf("vous avez expirer votre nombre de fois\n");
break;
}
if (bpf ==5)
{
printf("VOUS AVEZ GAGNER\n");
}
}}
/*maintenant la fonction main*/
int main()
{printf("bienvenue dans MasterMind\n\n");
int nbpr =9; // pour 8 ca met des zero
/* while (QueFaire()==1) fonction du deb
ut
{srand(nbpr);
nbpr+=1;
mastermind();
} */
/*ameliorons la fonction pour nous donner la posssibilité
de rejouer le mastermind precedent ou bien d´imprimer la solution*/
int rep; int Tres[5];
while ((rep = QueFaire())!=4)
{
srand(nbpr);
if (rep==1)
{
/*srand(nbpr);*/
nbpr+=1;
mastermind();
}
else if(rep==2)
{
srand(nbpr-1);
/*nbpr+=1;*/
mastermind();
}
else if (rep==3)
{
srand(nbpr-1);
SaisieInitiale(5,Tres);
printf("\n\n la solution etait : ");
AfficherSaisieInitiale(5,Tres);
}
}
printf("\n A TRES BIENTOT SUR MASTERMIND \n\n\n\n");
system("PAUSE");
return 0;}
Lire la suite 

Exercice en C »

1 réponses
Réponse
+0
moins plus
pourquoi tu testes pas toi-même ?
Ajouter un commentaire
Ce document intitulé « exercice en C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook