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
| void VerifierCombi(char *bon);
void GenererCombiAleatoire(char * solution);
void ProposerCombi(char * proposition);
//La fonction jeu est la fonction principale.Les chaines solution proposition et bon doivent être renvoyées à celle-ci.
void jeu()
{
char bon[5];
/*Ce que je voudrais faire ressemble plus ou moins à ça :
char proposition[5],solution[5],bon[5];
int i;
GenererCombiAleatoire(solution);
do
{ProposerCombi(proposition);
VerifierCombi(bon)}
while (i<=10&&strcmp(proposition,solution)!=0);*/
VerifierCombi(bon);
printf("[[%c] [%c] [%c] [%c]]",bon[0],bon[1],bon[2],bon[3]);
}
//Cette fonction genere un code de 4 lettres nommé solution.
void GenererCombiAleatoire(char * solution)
{
int a;
srand(time(NULL));
for(a=0;a<=3;a++)
{
solution[a]=rand()%6;
switch(solution[a])
{
case 0: solution[a]='R';
break;
case 1: solution[a]='V';
break;
case 2: solution[a]='B';
break;
case 3: solution[a]='J';
break;
case 4: solution[a]='O';
break;
case 5: solution[a]='M';
break;
}
}
solution[4] = '\0';
}
//Cette fonction demande à l'utilisateur de rentrer une châine de 4 lettres nommée proposition.
void ProposerCombi(char * proposition)
{
int a;
scanf("%s",proposition);
for(a=0;a<=3;a++){
while(strlen(proposition)!=4||proposition[a]!='R'&&proposition[a]!='V'&&proposition[a]!='B'&&proposition[a]!='J'&&proposition[a]!='O'&&proposition[a]!='M'&&proposition[a]!='r'&&proposition[a]!='v'&&proposition[a]!='b'&&proposition[a]!='j'&&proposition[a]!='o'&&proposition[a]!='m')
{printf("Combinaison impossible.Veuillez recommencer.\n");
scanf("%s",proposition);}
proposition[a]=toupper(proposition[a]);}
proposition[4] = '\0';
}
//La focntion VerifierCombi compare les 2 chaînes et remplace les lettres par 'N' 'B' ou '.' dans la chaîne test.
//Comme je n'ai pas réussi à récupérer les chaînes proposition et solution que j'avais envoyé au main, j'ai testé de cette manière.
void ProposerCombi(char * proposition);
void GenererCombiAleatoire(char * solution);
void VerifierCombi(char *bon)
{
char solution[5],proposition[5],test[5];
int i=1,z;
GenererCombiAleatoire(solution);//On demande à la focntion de generer un code
do//On demande à l'utilisateur de rentrer ses combinaison tant qu'il n'a pas bon et tant qu'il ne dépasse pas les 10 essais.
{
printf("\nEssai num%cro %d\n",130,i);
ProposerCombi(proposition);
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' ;
printf("[[%c] [%c] [%c] [%c]]",test[0],test[1],test[2],test[3]);
i++;
}
while(i<=10&&strcmp(proposition,solution)!=0);
printf("bravo");
strncpy(bon,test,4);//copie de test dans la chaîne 'bon' car je n'ai pas réussi a renvoyé directement test
} |
Partager