Un mastermind en console dos , un mode de test et un mode de jeu vous devez choisir entre plusieurs lettre
en fait c'etait un pti boulot pour l'ecole , tres simple et facile a comprendre
Source / Exemple :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void initialisationj(char*);
void initialisationt(char*);
void verification(char*);
void affichage(char*);
void main()
{
int choix;
char c='y',vord[5];
while (c=='y'||c=='Y')
{
printf("Bienvenue dans le Mastermind\n\n\tQue desirez-vous faire ?\n\n\t\t");
printf("1) Jeu \n\t\t2) Test");
printf("\nVotre choix : ");
scanf("%d",&choix);
while (choix<1 || choix>2)
{
printf("\nchoix invalide \nRecommencez ");
scanf("%d",&choix);
}
if (choix==1)
{
initialisationj(&vord[0]);
verification(&vord[0]);
printf ("\nVOICI la bonne reponse\n");
affichage(&vord[0]);
}
if (choix==2)
{
initialisationt(&vord[0]);
affichage(&vord[0]);
verification(&vord[0]);
}
printf("voulez vous recommencer ? (Y)es,(N)o ");
fflush(stdin);
c=getchar();
}
}
/*
input:*pa : pointeur de vecteur vord
process: generation aleatoire du vecteur pour le mode jeu
output : \
void initialisationj (char *pa)
{
int i,j;
srand(time(NULL));
/* initialisation du générateur aléatoire*/
for (i=0;i<4;i++)
{
j=rand()%7; /* j sera toujours compris entre 0 et 7 */
switch(j)
{
case 0 : *(pa+i)='w';
break;
case 1 : *(pa+i)='x';
break;
case 2 : *(pa+i)='y';
break;
case 3 : *(pa+i)='z';
break;
case 4 : *(pa+i)='t';
break;
case 5 : *(pa+i)='l';
break;
case 6 : *(pa+i)='m';
}
}
}
/*
input:*pa : pointeur de vecteur vord
process: generation du vecteur par l'utilisateur pour le mode test
output : \
void initialisationt (char *pa)
{
int i;
for (i=0;i<4;i++)
{
do
{
printf("tapez le %d e caractere\n",i+1);
fflush(stdin);
}
while(*(pa+i)!='w' &&*(pa+i)!='x' &&*(pa+i)!='y' &&*(pa+i)!='z' &&*(pa+i)!='t' &&*(pa+i)!='l' &&*(pa+i)!='m');
}
}
/*
input:*pa : pointeur de vecteur vord
process: affichage du vecteur vord
output : \
void affichage (char *pa)
{
int i;
for(i=0;i<4;i++)
{printf("%c ",*(pa+i));}
printf("\n");
}
/*
input:*pa : pointeur de vecteur vord
process: comparaison des 2 vecteurs pour verifier si gagné ou non
output : \
void verification (char *pa)
{
int essai,i,j,b,m;
char tmp[5],tmp2[5];
for(essai=10;essai>0;essai--)
{
for(i=0;i<4;i++)
{tmp2[i]=*(pa+i);}
printf("\ndevinez la suite de 4 lettres parmi w x y z t l m \n");
printf("il vous reste %d essais\n",essai);
for(i=0;i<4;i++)
{
do
{
printf("tapez le %d e caractere\n",i+1);
fflush(stdin);
tmp[i]=getchar();
}
while(tmp[i]!='w' &&tmp[i]!='x' &&tmp[i]!='y' &&tmp[i]!='z' &&tmp[i]!='t' &&tmp[i]!='l' &&tmp[i]!='m');
}
for(i=0,b=0;i<4;i++) /* bonnes réponses */
{
if(tmp[i]==tmp2[i])
{
tmp[i]=tmp2[i]='b';
b++;
}
}
for(i=0,j=0,m=0;i<4;i++) /* mauvaises reponses */
{
if (tmp2[i]=='b'||tmp2[i]=='n')
{
i++;
}
else
{
if(tmp2[i]==tmp[j])
{
tmp2[i]=tmp[j]='n';
m++;
}
else
{
j++;
}
}
}
if(b==4)
{
printf("\nBRAVO ! vous avez gagné en %d essais",(10-essai)+1);
essai=-1;
}
else
{
printf("\n %d a la bonne place \n %d a la mauvaise place",b,m);
}
}
if (essai==0)
{
printf("\nVous avez Perdu !");
}
}
Conclusion :
bon exercice pour débutants
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.