Jeu super-mastermind(devc++4)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 886 fois - Téléchargée 37 fois

Contenu du snippet

un ptit jeu qui marche

Source / Exemple :


#include<stdio.h>
#include<conio.c>
#include<time.h>

#define bleu 151
#define vert 166
#define rouge 193
#define marron 97
#define jaune 226
#define blancc 241

void intro();
void codes_couleurs(int x,int y,int c[],int i);
void traitement(int x,int t[]);
void traitement2(int c[],int t[],int noir,int z);

int main(){
           int i,color[5],u[5],t[5],g[5];
           time_t h;
           //initialisation time
           srand (time (&h));

           intro();
           clrscr();

           for(i=1;i<6;i++){
             //trouve la combinaison de couleurs au has
             t[i]=(rand() % 5)+1;
             g[i]=6;
             codes_couleurs(60,12,g,i);
           }
           //titre
           gotoxy(30,2);textcolor(12);printf("SUPER-MASTERMIND");
           gotoxy(53,10);printf("combinaison gagnante:");
           for(i=1;i<6;i++){
             u[i]=i;
             //place le code couleurs a ces coordonees
             codes_couleurs(60,6,u,i);
             gotoxy(60,5);textcolor(15);printf(" 1");
             printf("   2");printf("   3");
             printf("   4");printf("   5");
             gotoxy(62,3);printf("code couleurs");
           }
           traitement(13,t);traitement(16,t);traitement(19,t);
           traitement(22,t);traitement(25,t);
           getch();
           getch();
}

void intro(){
           int i,x;
           for(x=1;x<20;x++){
             gotoxy(x,8);textcolor(15);
             printf(" SKINIA ");
             gotoxy(-x+45,8);textcolor(15);
             printf(" presents ");
             sleep(20);
           }
           gotoxy(30,18);textcolor(12);
           printf("SUPER-MASTERMIND ");putch(169);
           for(i=10;i<1000;i=i+5){   //joue melodie
             beep(i,5);
           }
}

void codes_couleurs(int x,int y,int c[],int i){
           if(c[i]==1) c[i]=bleu;
           if(c[i]==2) c[i]=vert;
           if(c[i]==3) c[i]=rouge;
           if(c[i]==4) c[i]=marron;
           if(c[i]==5) c[i]=jaune;
           if(c[i]==6) c[i]=blancc;
           gotoxy(x,y);textcolor(c[1]);printf("  ");
           gotoxy(x+4,y);textcolor(c[2]);printf("  ");
           gotoxy(x+8,y);textcolor(c[3]);printf("  ");
           gotoxy(x+12,y);textcolor(c[4]);printf("  ");
           gotoxy(x+16,y);textcolor(c[5]);printf("  ");
}

void traitement(int x,int t[]){
           int c[5],noir=0,i,j;

           for(i=1;i<6;i++){
             gotoxy(1,10);textcolor(15);
             printf("proposez vos couleurs\n>>");
             scanf("%d",&c[i]);
             gotoxy(3,11);printf("          ");
             gotoxy(3,11);
             //compte les couleurs bonnes et bien placees
             if(c[i]==t[i]) noir++;
           }
           if(noir!=5) traitement2(c,t,noir,x);
           else{
             for(i=1;i<6;i++){
               gotoxy(53,12);textcolor(15);printf("gagne");
               codes_couleurs(1,x,c,i);
               codes_couleurs(60,12,t,i);
             }
           }
}

//fonction qui sert a compter les boules blanches
void traitement2(int c[],int t[],int noir,int z){
           int i,blanc=0,bc[6],bt[6];
           bc[1]=0,bc[2]=0,bc[3]=0,bc[4]=0,bc[5]=0;
           bt[1]=0,bt[2]=0,bt[3]=0,bt[4]=0,bt[5]=0;
           //compte le nbre de chaque couleurs choisis
           for(i=1;i<6;i++){
             if(c[i]==1) bc[1]++;
             if(c[i]==2) bc[2]++;
             if(c[i]==3) bc[3]++;
             if(c[i]==4) bc[4]++;
             if(c[i]==5) bc[5]++;
           }
           //pareil mais avec les couleurs de l'ordi
           for(i=1;i<6;i++){
             //marque les couleurs choisies
             codes_couleurs(1,z,c,i);
             if(t[i]==1) bt[1]++;
             if(t[i]==2) bt[2]++;
             if(t[i]==3) bt[3]++;
             if(t[i]==4) bt[4]++;
             if(t[i]==5) bt[5]++;
           }
           //boucle qui compare les couleurs
           for(i=1;i<6;i++){
             if(bt[i]!=0 && bc[i]!=0){
               if(bt[i]>=bc[i]) blanc=blanc+bc[i];
               else blanc=blanc+bt[i];
             }
           }
           blanc=blanc-noir;
           gotoxy(22,z);textcolor(15);
           printf("%db  ",blanc);printf("%dn",noir);
           if(z==25){
             gotoxy(53,12);textcolor(15);printf("perdu");
             for(i=1;i<6;i++){
               codes_couleurs(60,12,t,i);
             }
           }
}

A voir également

Ajouter un commentaire

Commentaire

cs_GoldenEye
Messages postés
527
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
6 octobre 2008
2 -
1/ Malgré qq bidouilles il y a de nombreux pbs sous Visual C++
2/ La fonction main ne renvoie rien => erreur
3/ Dans la fonction Traitement, la variable j n'est pas utilisée
4/ Il y en a d'autres comme ça. Sinon, le jeu a l'air à peu près jouable
5/ Continue et ce sera super

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.