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
|
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
void AfficherJeu(int *essai);
void VerifierCombi(char * proposition1, char * test1);
void ProposerCombi(char * proposition);
void GenererCombiAleatoire(char * solution);
void jeu();
int main()
{
srand(time(NULL));
jeu();
}
void jeu()
{
char solution[5],proposition[5],proposition1[5],test1[5];
int essai=1;
GenererCombiAleatoire(solution);
printf("solution : %s\n",solution);
do
{printf("Proposition %d\n",essai);
VerifierCombi(proposition1,test1);
AfficherJeu(&essai);
essai++;}
while(essai<=10&&strcmp(proposition1,solution)!=0);
}
/*--------------------------------------------
Création de la fonction qui génère la combinaison aléatoire et qui la renvoye dans jeu*/
void GenererCombiAleatoire(char * solution)
{
char Lettres[7]="RVBJOM";
int a;
for(a=0;a<=3;a++)
solution[a]=Lettres[rand()%6];
solution[4] = '\0';
}
/*---------------------------------------------
Fin de la fonction qui génère la combinaison aléatoire*/
/*---------------------------------------------
Début de la fonction qui demande à l'utilisateur de rentrer une proposition*/
void ProposerCombi(char * proposition)
{
int a;
do{scanf("%s",proposition);
for(a=0;a<=3;a++)
proposition[a]=toupper(proposition[a]);
if(strlen(proposition)!=4||proposition[0]!='R'&&proposition[0]!='V'&&proposition[0]!='B'&&proposition[0]!='J'&&proposition[0]!='O'&&proposition[0]!='M'||proposition[1]!='R'&&proposition[1]!='V'&&proposition[1]!='B'&&proposition[1]!='J'&&proposition[1]!='O'&&proposition[1]!='M'||proposition[2]!='R'&&proposition[2]!='V'&&proposition[2]!='B'&&proposition[2]!='J'&&proposition[2]!='O'&&proposition[2]!='M'||proposition[3]!='R'&&proposition[3]!='V'&&proposition[3]!='B'&&proposition[3]!='J'&&proposition[3]!='O'&&proposition[3]!='M')
printf("Combinaison impossible. Recommencez!\n");}
while(strlen(proposition)!=4||proposition[0]!='R'&&proposition[0]!='V'&&proposition[0]!='B'&&proposition[0]!='J'&&proposition[0]!='O'&&proposition[0]!='M'||proposition[1]!='R'&&proposition[1]!='V'&&proposition[1]!='B'&&proposition[1]!='J'&&proposition[1]!='O'&&proposition[1]!='M'||proposition[2]!='R'&&proposition[2]!='V'&&proposition[2]!='B'&&proposition[2]!='J'&&proposition[2]!='O'&&proposition[2]!='M'||proposition[3]!='R'&&proposition[3]!='V'&&proposition[3]!='B'&&proposition[3]!='J'&&proposition[3]!='O'&&proposition[3]!='M');
proposition[4] = '\0';
}
/*---------------------------------------------
Fin de la fonction*/
void VerifierCombi(char * proposition1,char *test1)
{
char solution[5],proposition[5],test[5];
int z;
ProposerCombi(proposition);
strcpy(proposition1,proposition);
GenererCombiAleatoire(solution);
printf("solution dans verifier combi: %s \n",solution);
for(z=0;z<=3;z++)
{
if(proposition[z]==solution[z])//Quand la lettre est au bon endroit dans la combinaison
test[z]='N';
else if (proposition[z]!=solution[0]&&proposition[z]!=solution[1]&&proposition[z]!=solution[2]&&proposition[z]!=solution[3])//Quand la lettre n'est pas présente dans la combinaison
test[z]='.';
else test[z]='B';//Quand la lettre est présente mais pas à la bonne place
}
test[4] = '\0' ;
strcpy(test1,test);
//printf("%s\n",test);
}
void AfficherJeu(int *essai)
{
char test1[5],proposition1[5];
int z=10,a;
VerifierCombi(proposition1,test1);
printf("%s\n",test1);
printf("____________________________________________");
for(z=10;z>=*essai+1;z--)
printf("\n[[%2d]-[ (*) (*) (*) (*) ] [ [.] [.] [.] [.] ]",z);
printf("\n");
printf("[[%2d]-[ ",*essai);
for(a=0;a<=3;a++)
printf("(%c) ",proposition1[a]);
printf("] ");
printf("[ [%c] [%c] [%c] [%c] ]",test1[0],test1[1],test1[2],test1[3]);
}
/*Probleme avec Afficherjeu dans la fonction jeu, elle fait que je doit rentrer 2 fois ma proposition
Probleme avec Generercombialeatoire, il crée une nouvelle combinaison a chaque fois
*/ |
Partager