Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /************************************************************/
- /* FLETA MACAVILCA Luis */
- /* Groupe 2101 */
- /* Dossier 1 : MASTERMIND */
- /************************************************************/
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <ctype.h>
- void accueil (); /*fonction de Bienvenue*/
- int menu (); /*Le menu*/
- void init_couleur (char *,int couleur_juste_max); /*fonction pour genere la combinaison de coulaur*/
- void utili (char *,int couleur_juste_max); /*fonction pour que l'utilisateur entre ses couleurs*/
- void affich_utili (char *,int couleur_juste_max); /*fonction pour afficher la combinaison entree*/
- int compa (char *,char *,int couleur_juste_max); /*fonction pour compater les deux vecteurs (secrete et celle entree)*/
- int regles (); /*les regles du jeu*/
- int perso_couleur (); /*fonction pour definir le nombre couleur pr la combinaison*/
- int perso_poss (); /*fonction pour definir les possibilitee */
- int main()
- {
- char code[4],tentative[4];
- int rep=1,choix,nbr_poss=0,nbr_poss_max,couleur_juste_max,num_ten=0,i,couleur_juste=0;
- srand(time(NULL));
- accueil();
- while (rep==1)
- {
- choix=menu ();
- switch(choix)
- {
- case 1: system("cls");
- couleur_juste_max=4;
- nbr_poss_max=10;
- init_couleur (&code[0],couleur_juste_max);
- /**Juste pour tester, affiche le code couleur**/
- /*for(i=0;i<couleur_juste_max;i++)
- {
- printf("%c",code[i]);
- } */
- printf("\nVous avez 10 essais\n");
- while (nbr_poss<nbr_poss_max && couleur_juste<couleur_juste_max)
- {
- num_ten++;
- printf("\nTentative (%d sur 10)\n",num_ten);
- utili (&tentative[0],couleur_juste_max);
- system("cls");
- affich_utili (&tentative[0],couleur_juste_max);
- printf("\n\n");
- couleur_juste=compa (&tentative[0],&code[0],couleur_juste_max);
- nbr_poss++;
- }
- if (couleur_juste==4)
- {
- printf("\n\t\tBRAVO ! Vous Avez trouver la bonne combinaison ! YES!\n\n\n");
- }
- if (nbr_poss==10)
- {
- printf("\n\t\t\tDommage ! Vous avez perdu !");
- printf("\n\t\t\tLes couleurs secretes etaient : \n\t\t\t\t");
- for(i=0;i<4;i++)
- {
- printf("(%c)",code[i]);
- }
- printf("\n\n\n");
- }
- rep=0;
- break;
- case 2: system("cls");
- couleur_juste_max=perso_couleur ();
- nbr_poss_max=perso_poss ();
- init_couleur (&code[0],couleur_juste_max);
- /**Juste pr tester, affiche le code couleur**/
- /*for(i=0;i<couleur_juste_max;i++)
- {
- printf("%c",code[i]);
- } */
- printf("\nVous avez %d essais\n",nbr_poss_max);
- while (nbr_poss<nbr_poss_max&&couleur_juste<couleur_juste_max)
- {
- num_ten++;
- printf("\nTentative (%d sur %d)\n",num_ten,nbr_poss_max);
- utili (&tentative[0],couleur_juste_max);
- system("cls");
- affich_utili (&tentative[0],couleur_juste_max);
- printf("\n\n");
- couleur_juste=compa (&tentative[0],&code[0],couleur_juste_max);
- nbr_poss++;
- }
- if (couleur_juste==couleur_juste_max)
- {
- printf("\n\t\tBRAVO ! Vous Avez trouver la bonne combinaison ! YES!\n\n\n");
- }
- if (nbr_poss==nbr_poss_max)
- {
- printf("\n\t\t\tDommage ! Vous avez perdu !");
- printf("\n\t\t\tLes couleurs secretes etaient : \n\t\t\t\t");
- for(i=0;i<couleur_juste_max;i++)
- {
- printf("(%c)",code[i]);
- }
- printf("\n\n\n");
- }
- rep=0;
- break;
- case 3: rep=0;
- rep=regles ();
- break;
- case 4: return 0;
- rep=0;
- break;
- default:printf("Mauvais choix\n\n");
- rep=1;
- }
- }
- return 0;
- }
- void accueil ()
- {
- char enter;
- printf("\n\n\n\n\n");
- printf("\t ------------------------------------------------------\n");
- printf("\t\t\t Projet 1 : Mastermind\n\n");
- printf("\t\t\t FLETA MACAVILCA\n\n");
- printf("\t\t\t LUIS\n\n");
- printf("\t\t\t 2101\n\n");
- printf("\t\t\t Info Gestion 2011-2012\n\n");
- printf("\t ------------------------------------------------------\n");
- printf("\n\n\n\nENTER pour continuer");
- fflush(stdin);
- do
- {
- enter=getchar();
- system("cls");
- }while(enter != '\n');
- }
- int menu ()
- {
- int choix;
- system("cls");
- printf("\t\t*****************************************\n");
- printf("\t\t|\t\tMASTERMIND\t\t|\n");
- printf("\t\t*****************************************\n");
- printf("\n\n");
- printf("\n\t\t-----------------------------------------\n");
- printf("\t\t|\t\t MENU\t\t\t|");
- printf("\n\t\t-----------------------------------------\n");
- printf("\t\t|\t 1-jouer\t\t\t|\n");
- printf("\t\t|\t 2-Personnaliser le jeu\t|\n");
- printf("\t\t|\t 3-Les Regles\t\t\t|\n");
- printf("\t\t|\t 4-Quitter\t\t\t|\n");
- printf("\t\t-----------------------------------------\n");
- printf("\n\n");
- printf("\t\tVotre choix:");
- scanf("%d",&choix);
- fflush(stdin);
- return choix;
- }
- int regles ()
- {
- int rep;
- char quit;
- do
- {
- system("cls");
- printf("*****************************************************************************\n");
- printf("*\tRegle du jeu:\t\t\t\t\t\t\t *\n");
- printf("*\t-------------\t\t\t\t\t\t\t *\n");
- printf("*\t-L'ordinateur va generer une combinaison de 4 couleurs distinctes *\n*\t (combinaison secrete).\t\t\t\t\t\t *\n");
- printf("*\t-L'utilisateur devra entrer 4 couleurs parmis les 6 autorisees *\n*\t une par une afin de trouver la combinaison secrete.\t\t *\n");
- printf("*\t R:Rouge B:Bleu V:vert J:Jaune N:Noir O:Orange *\n");
- printf("*\t-L'ordinateur vous affichera le nombre de couleur correctement *\n*\t placee ou les couleurs qui y figure mais mal placee\t\t *\n");
- printf("*\t-Vous aurez 10 chances pour trouver les bonnes couleurs. *\n");
- printf("*\t *\n");
- printf("*\t Q pour revenir au menu *\n");
- printf("*****************************************************************************\n");
- scanf("%c",&quit);
- fflush(stdin);
- quit=toupper(quit);
- }while (quit!='Q');
- if (quit=='Q')
- {
- rep=1;
- }
- return rep;
- }
- int perso_couleur ()
- {
- int nbr_couleur;
- do
- {
- printf("\nVous voulez une combinaison de combien de couleur (entre 3 et 6): \n");
- scanf("%d",&nbr_couleur);
- }while (nbr_couleur<3 || nbr_couleur>6);
- return nbr_couleur;
- }
- int perso_poss ()
- {
- int nbr_poss;
- do
- {
- printf("\nVous voulez combien de possibilite? (entre 2 et 20)\n");
- scanf("%d",&nbr_poss);
- }while (nbr_poss<2 || nbr_poss>20);
- return nbr_poss;
- }
- void init_couleur (char *code,int couleur_juste_max)
- {
- int i, j,co, lettreRepet;
- for(i=0;i<couleur_juste_max;i++)
- {
- do
- {
- lettreRepet=0;
- co=rand()%(5-0+1)+0;
- switch (co)
- {
- case 0: code[i]='R';
- break;
- case 1: code[i]='B';
- break;
- case 2: code[i]='V';
- break;
- case 3: code[i]='J';
- break;
- case 4: code[i]='N';
- break;
- case 5: code[i]='O';
- break;
- default: ;
- }
- for(j=0;j<i;j++)
- {
- if(code[i]==code[j])
- {
- lettreRepet=1;
- }
- }
- }while(lettreRepet==1);
- }
- }
- void utili (char *tentative,int couleur_juste_max)
- {
- int i,j,pos_coul,lettreRepet;
- printf("\n----------------------------------------------------------------\n");
- printf("Les couleurs: R:Rouge B:Bleu V:vert J:Jaune N:Noir O:Orange");
- printf("\n----------------------------------------------------------------\n\n");
- for(i=0;i<couleur_juste_max;i++)
- {
- do
- {
- pos_coul=i+1;
- do
- {
- lettreRepet=0;
- printf("Entrez la couleur de votre choix (Couleur %d/%d):",pos_coul,couleur_juste_max);
- fflush(stdin);
- tentative[i]=getchar();
- tentative[i]=toupper(tentative[i]);
- }while(tentative[i] != 'R' && tentative[i] != 'B' && tentative[i] != 'V' && tentative[i] != 'J' && tentative[i] != 'N' && tentative[i] != 'O' );
- for(j=0;j<i;j++) /*Verifie si ce que l'utilisateur a entré n'est pas deja dans le vecteur. */
- {
- if(tentative[i]== tentative[j])
- {
- lettreRepet=1;
- }
- }
- }while(lettreRepet==1);
- }
- }
- void affich_utili (char *tentative,int couleur_juste_max)
- {
- int i;
- printf("\t\t\t *** Vos couleurs ***\n");
- printf("\t\t\t\t");
- for(i=0;i<couleur_juste_max;i++)
- {
- printf("(%c)",tentative[i]);
- }
- }
- int compa (char *tentative,char *code,int couleur_juste_max)
- {
- int i,j,couleur_juste = 0, couleur_mauvais =0;
- for(i=0;i<couleur_juste_max;i++)
- {
- for(j=0;j<couleur_juste_max;j++)
- {
- if(tentative[i]==code[j] && i==j)
- {
- couleur_juste++;
- j=couleur_juste_max;
- }
- else
- {
- if(tentative[i]==code[j] && i!=j)
- {
- couleur_mauvais++;
- }
- else
- {
- }
- }
- }
- }
- printf("\t\t vous avez %d couleurs au bon endroit\n", couleur_juste);
- printf("\t\t vous avez %d couleurs au mauvais endroit\n", couleur_mauvais);
- printf("\n\t*****************************************************************\n");
- return couleur_juste;
- }
Add Comment
Please, Sign In to add comment