Mastermind en console

Description

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);
  • (pa+i)=getchar();
} 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

Codes Sources

A voir également

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.