Pac_man

Description

Ce programme est la version finale de mon premier programme en Turbo_C++ en utilisant la programmtion orienté objet
un jeu tres amusant plein e surprise , il comporte 03 stages , et il y a plein de commentaire pour bin comprendre,
j'ai ajouter une bibliotheque pour charger des photos bmp sous dos , tres facile a utiliser .

Source / Exemple :


#include"stage.h"
#include<time.h>
#include <fcntl.h>
#include <io.h>

#define  ESC   0X1B
#define  CR    0XD
#define  HAUT  0X48
#define  BAS   0X50
#define  DROIT 0X4D
#define  GAUCH 0X4B

#define pi 3.1429654

#define  SUP       529
#define  INF       123
#define lin 130
#define col 20
int vrai=1;
int bbb=1;
int mm=100;
//t_screen sDisplay;
t_image v,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24;

class Pacman;
class Virus;
class BIG_FOTHER
 {
     public :
		BIG_FOTHER(int,int,int);

		friend void Score();
		friend void demo_music_laser();
		void SPE_M(int s);
		void Modifier(int,int);
		int lecS(){return speed;}
		int lecX(){return x;}
		int lecY(){return y;}

     protected :
		int x,y,c,speed;

 };

class Virus:public BIG_FOTHER
 {
     public :
		Virus(int,int,int);
		void Affiche(int);
		void Cache();
		void Command(Pacman,int);
		void Command2(Pacman,int);
		void Command3(Pacman,int);
		friend void Getout(Virus&,Virus&,Virus&,Virus&);
		void Up();
		void Lf();
		void Rg();
		void REMISE_0();
		void Restore2();
		void Restore3();
		void Restore4();
		void Restore5();

     private :
       int bool,spool;

 };
class Pacman:public BIG_FOTHER
{ public:
	 Pacman(int,int,int,int vie);
	void Affiche1(char);
	void Cache1();
	void Life(int);
	void Add();
	void vieADD();
	void vieSUB();
	void SUB();
	void Restore();
	void Compteur();
	void Pomme();
	void Banane();
	void Raisin();
	int lec_cpt(){return cpt;}
	int lec_pom(){return pom;}
	int lec_ban(){return ban;}
	int lec_rai(){return rai;}

	void Play();
	void REMISE_0();
	int lecCPT(){return cpt;}
	void Modifier_cpt(int);
	int lecVie(){return vie;}
	friend void Command1(Pacman&,Virus,Virus,Virus,Virus);

  private:
	 int vie,ban,rai,pom,cpt;
};

//----------------------------------- constructeur big_fother -------------
BIG_FOTHER::BIG_FOTHER(int x1,int y1,int c1)
{
x=x1;
y=y1;
c=c1;
speed=80;
}
//-------------------------------------------------------------------------
void BIG_FOTHER::SPE_M(int s)
{
speed=s;
}
//----------------------------------- constructeur virus--------------------
Virus::Virus(int x1,int y1,int c1):BIG_FOTHER(x1,y1,c1)
{
spool=0;
bool=0;
}
//----------------------------------- constructeur pacman--------------------
Pacman::Pacman(int a,int b,int c1,int v1):BIG_FOTHER(a,b,c1)
{
ban=0;
rai=0;
pom=0;
vie=v1;
cpt=0;
}
//-------------------------------------------------------------------------
void Pacman::REMISE_0()
{
ban=0;
rai=0;
pom=0;
vie=2;
cpt=0;
vrai=1;
}
//-----------------------------------------------------------------------
void Virus::REMISE_0()
{
spool=0;
bool=0;

}

//----------------------------------- partie sonor--------------------------
void demo_music_laser()
{
    for(int count=0;count<10;count++)
	{sound(count*100);delay(10);}
     nosound();

}
//..........................................................................
void demo_music_ambilance()
{
     for(int count=0;count<2;count++)
	{sound(4000);delay(5);sound(7000);delay(5);}
     nosound();

}

//------------------------------------ les methodes de big_fother------------

void BIG_FOTHER::Modifier(int x1,int y1)
{
x=(x+x1) ;
y=(y+y1) ;

}
//----------------------------------- les methodes de pacman----------------
void Pacman::Compteur()
{
cpt+=1;
gotoxy(12,3);printf("%d",cpt);
	 sound(7000);
	 delay(50);
	 nosound();

}
//.........................................................................
void Pacman::Pomme()
{
pom+=20;
gotoxy(12,13);printf("%d",pom);
	 sound(5000);
	 delay(50);
	 nosound();

}
//........................................................................
void Pacman::Banane()
{
ban+=50;
gotoxy(12,15);printf("%d",ban);
	 sound(5000);
	 delay(50);
	 nosound();

}
//........................................................................
void Pacman::Raisin()
{
rai+=100;
gotoxy(12,17);printf("%d",rai);
	 sound(7000);
	 delay(50);
	 nosound();

}
//.......................................................................
void Pacman::vieADD()
{
vie+=1;
}
//........................................................................
void Pacman::vieSUB()
{
vie=vie-1;
}
//........................................................................
void Pacman::Add()
{
DisplayImage(&sDisplay, &v4,10+20*vie,120,0);
	 sound(7000);
	 delay(50);
	 nosound();

}
//.........................................................................
void Pacman::SUB()
{
DisplayImage(&sDisplay, &v5,10+20*vie,120,0);
}

//.........................................................................
void Pacman::Affiche1(char n)
{
SetPalette(&sDisplay, &v.ihHeader);
setcolor(15);
setfillstyle(1,15);

   switch(n)
   {
   case DROIT  :pieslice(lecX()+7,lecY()+7,0,360,5);delay(20);DisplayImage(&sDisplay, &v7,lecX(),lecY(),0);break;
   case HAUT   :pieslice(lecX()+7,lecY()+7,0,360,5);delay(20);DisplayImage(&sDisplay, &v9,lecX(),lecY(),0);break;
   case BAS    :pieslice(lecX()+7,lecY()+7,0,360,5);delay(20);DisplayImage(&sDisplay, &v10,lecX(),lecY(),0);break;
   case GAUCH  :pieslice(lecX()+7,lecY()+7,0,360,5);delay(20);DisplayImage(&sDisplay, &v8,lecX(),lecY(),0);break;
   }

}
//..........................................................................
void Pacman::Life(int n)
{
int ii,jj;
setfillstyle(1,4);
randomize();
ii=rand() % 30;
jj=rand() % 30;
if (getpixel(14*ii+lin+21+7,14*jj+col+21+7)!=12)
   if (( 14*ii+lin+21 < 500)&&(14*jj+col+21 < 400))
  { if (n==1){DisplayImage(&sDisplay, &v4,14*ii+lin+21,14*jj+col+21,0); }
    if (n==2){DisplayImage(&sDisplay, &v15,14*ii+lin+21,14*jj+col+21,0); }
    if (n==3){DisplayImage(&sDisplay, &v16,14*ii+lin+21,14*jj+col+21,0); }
    if (n==4){DisplayImage(&sDisplay, &v17,14*ii+lin+21,14*jj+col+21,0); }
  }
}

//..........................................................................
void Pacman::Cache1()
{
DisplayImage(&sDisplay, &v5,lecX(),lecY(),0);
}

//------------------------------- les methodes de virus---------------------

void Virus::Affiche(int n)
{
SetPalette(&sDisplay, &v.ihHeader);
bool=0;
spool=0;
if(getpixel(x+7,y+7)==2) bool=1;
if(getpixel(x+7,y+7)==15) spool=1;
if (bbb)
{
if (c==4) {DisplayImage(&sDisplay, &v,x,y,0); }
if (c==9) {DisplayImage(&sDisplay, &v1,x,y,0); }
if (c==14) {DisplayImage(&sDisplay, &v2,x,y,0); }
if (c==1) {DisplayImage(&sDisplay, &v6,x,y,0); }
if (c==13) {DisplayImage(&sDisplay, &v7,x,y,0); }
setcolor(0);
setfillstyle(1,0);
switch(n)
	{
	case 0:  pieslice(x+7,y+4,0,360,1);
		 pieslice(x+12,y+4,0,360,1);
		 break;
	case 1:  pieslice(x+4,y+4,0,360,1);
		 pieslice(x+8,y+4,0,360,1);

		 break;
	case 2:  pieslice(x+5,y+6,0,360,1);
		 pieslice(x+10,y+6,0,360,1);

		 break;
	case 3:  pieslice(x+5,y+2,0,360,1);
		 pieslice(x+10,y+2,0,360,1);

		 break;
	}
}
else DisplayImage(&sDisplay, &v18,x,y,0);     //image de la peur v18

}
//.........................................................................
void Virus::Cache()
{
DisplayImage(&sDisplay, &v5,x,y,0);
if (bool)  { setcolor(2);setfillstyle(SOLID_FILL,2);pieslice(x+7,y+7,0,360,1);}
//if (spool) { setcolor(15);setfillstyle(SOLID_FILL,15);pieslice(x+7,y+7,0,360,3);}
}
//.........................................................................
void Virus::Command(Pacman p,int n)
{
int choix;
  if (( x != p.lecX() ) || ( y != p.lecY() ))
      {if (x != p.lecX())
	 {if (x < p.lecX()) {if ((getpixel(x+7+15,y+7)!=12)) choix=0;else if (getpixel(x+7,y-15+7)!=12) choix=3;}
	  else {if ((getpixel(x-15+7,y+7)!=12)) choix=1;else if(getpixel(x+7,y+7-15)!=12) choix=2;}}
      else
	 {if (y < p.lecY()) {if(getpixel(x+7,y+15+7)!=12) choix=2;else if (getpixel(x+15+7,y+7)!=12) choix=0;}
	  else {if (getpixel(x+7,y-15+7)!=12) choix=3;else if (getpixel(x-15+7,y+7)!=12) choix=1;}}

for (int l=1;l<=n;l++)
	     {
if (vrai){
  switch(choix) {
		   case 0:         Cache();x+=14;Affiche(0);
				   break;
		   case 1 	:  Cache();x-=14;Affiche(1);
				   break;
		   case 2      :   Cache();y+=14;Affiche(2);
				   break;
		   case 3 	:  Cache();y-=14;Affiche(3);
				   break;
		 }

		 delay(speed/10);
	     }
	}
   }
    else {vrai=0;Cache();delay(100);demo_music_laser();}
}

//........................................................................
void Virus::Command3(Pacman p,int n)
{
int choix;
randomize();
int non=1;
while(non)
{
choix=rand()%4;
switch(choix)
  {
	case 0:if (getpixel(x+7+15,y+7)!=12) non=0;break;
	case 1:if(getpixel(x+7-15,y+7)!=12)  non=0;break;
	case 2:if (getpixel(x+7,y+7+15)!=12) non=0;break;
     //	case 3:if (getpixel(x+7,y+7-15)!=12) non=0;break;
  }
}

 if ( (x!=p.lecX())||(y != p.lecY()) )
	    {
	       for (int l=1;l<=n;l++){
		   if (vrai){
			switch(choix) {
				case 0  : Cache();if (x != SUP) x+=14;
					  else if (x==SUP) x=INF;
					  Affiche(0);
					  break;
				case 1 	: Cache();if (x != INF) x-=14;
					  else if (x==INF) x=SUP;
					  Affiche(1);
					  break;
				case 2  : Cache();y+=14;Affiche(2);
					  break;
				case 3 	: Cache();y-=14;Affiche(3);
					  break;
				       } delay(speed/10);
				     }
	    }

       }
	 else {vrai=0;Cache();delay(100); demo_music_laser();}
}
//..........................................................................
void Virus::Command2(Pacman p,int n)
{
int choix;
if ( (x!=p.lecX())||(y != p.lecY()) )
       {if (y != p.lecY())
	  {if (y < p.lecY()) {if ((getpixel(x+7,y+7+15)!=12)) choix=2;else if ((getpixel(x+7-15,y+7)!=12)) choix=1;}
	   else {if ((getpixel(x+7,y+7-15)!=12)) choix=3;else if ((getpixel(x+7+15,y+7)!=12)) choix=0;}}
       else
	  {if (x < p.lecX()) {if((getpixel(x+15+7,y+7)!=12)) choix=0;else if ((getpixel(x+7,y-15+7)!=12)) choix=3;}
	   else {if ((getpixel(x-15+7,y+7)!=12)) choix=1;else if ((getpixel(x+7,y+7+15)!=12)) choix=2;}}

for (int l=1;l<=n;l++){
	 if (vrai){
		switch(choix) {
			case 0 : Cache();if (x != SUP) x+=14;
				 else if (x==SUP) x=INF;
				 Affiche(0);
				 break;
			case 1 : Cache();if (x != INF) x-=14;
				 else if (x==INF) x=SUP;
				 Affiche(1);
				 break;
			case 2 : Cache();y+=14;Affiche(2);break;
			case 3 : Cache();y-=14;Affiche(3);break;
			      } delay(speed/10);
		       }
	      }
      }  else {vrai=0;Cache();delay(100); demo_music_laser();}
}

//..............................la commande principale .....................
void Command1(Pacman &p1,Virus p2,Virus p3,Virus p4,Virus p5)
{
int c,v;
int slep=0;
char touche;
int stop;
p1.Affiche1(1);
while((vrai) && (touche!=CR) && (p1.lecCPT()!=mm))
 {
  stop=1;
  touche=getch();
  if (touche==0X00)
  touche=getch();
	    while(!kbhit()&&(vrai)&&(stop)&&(p1.lecCPT()!=mm)){
		   switch(touche) {
				   case DROIT :   p1.Cache1();
						  if (getpixel(p1.lecX()+7+15,p1.lecY()+7) !=12){
						  if (p1.lecX() != SUP)
						  p1.Modifier(14,0);
						  else if (p1.lecX()==SUP)
						  p1.Modifier(-406,0);}
						  else stop=0;
						  break;

				   case GAUCH :  p1.Cache1();
						 if (getpixel(p1.lecX()-15+7,p1.lecY()+7) !=12) {
						 if (p1.lecX() != INF+14)
						 p1.Modifier(-14,0);
						 else if (p1.lecX()==INF+14)
						 p1.Modifier(406,0);}
						 else stop=0;
						 break;

				    case BAS  :  p1.Cache1();
						 if(getpixel(p1.lecX()+7,p1.lecY()+15+7)!=12){
						 if (p1.lecY() != SUP)
						 p1.Modifier(0,14);
						 else if (p1.lecY()==SUP)
						 p1.Modifier(0,-520);  }
						 else stop=0;
						 break;

				    case HAUT :  p1.Cache1();
						 if (getpixel(p1.lecX()+7,p1.lecY()-15+7)!=12)  {
						 if (p1.lecY() != INF)
						 p1.Modifier(0,-14);
						 else if (p1.lecY()==INF)
						 p1.Modifier(0,520);  }
						 else stop=0;
						 break;

				    case ESC  :  exit(0);

		}
		if (getpixel(p1.lecX()+7,p1.lecY()+7)==2)  p1.Compteur();
		if (getpixel(p1.lecX()+7,p1.lecY()+7)==11) p1.Banane();
		if (getpixel(p1.lecX()+7,p1.lecY()+7)==13) p1.Raisin();
		if (getpixel(p1.lecX()+7,p1.lecY()+7)==1)  p1.Pomme();
		if (getpixel(p1.lecX()+7,p1.lecY()+7)==15) {bbb=0;p2.Affiche(3);p3.Affiche(3);p4.Affiche(3);p5.Affiche(3);slep=30;bbb=1;} //option qui stop les virus
		if (getpixel(p1.lecX()+7,p1.lecY()+7)==9) { p1.vieADD();p1.Add();}//ajout des vies
		p1.Affiche1(touche);delay(p1.lecS());
		if(slep==0){
			   p2.Command2(p1,1);     //la poursuite
			   p4.Command2(p1,1);
			   p3.Command3(p1,1);
			   p5.Command3(p1,1);     //virus fou

		 if (p1.lecCPT() % 23 ==0) p1.Life(4);  //banane
		 if (p1.lecCPT() % 13 ==0) p1.Life(3);  //pomme
		 if (p1.lecCPT() % 17 ==0) p1.Life(2);  //raisin
		 if (p1.lecCPT() % 55 ==0) p1.Life(1);  //coeur

			   }
		 else {demo_music_ambilance();slep-=1;}
	 }

		while (!kbhit())
		     {delay(50);p2.Command2(p1,1);p4.Command3(p1,1);p3.Command(p1,1);p5.Command2(p1,1);} //poursuit quand pac ne bouge pas

	}
	p1.Cache1();  //effacement de l'ancienne partie
	p2.Cache();
	p3.Cache();
	p4.Cache();
	p5.Cache();
}
//..............................le positionement des virus..................
void Getout(Virus &p2,Virus &p3,Virus &p4,Virus &p5)
{
  DisplayImage(&sDisplay, &v19,278,260,0);  //affiche get_ready
   p2.Up(); delay(100); p4.Up();  delay(100); p3.Lf(); delay(100);
   p5.Rg(); delay(100); p2.Up();  delay(100); p4.Up(); delay(100);
   p3.Up(); delay(100); p5.Up();  delay(100); p2.Up(); delay(100);
   p4.Up(); delay(100); p3.Up();  delay(100); p5.Up(); delay(100);
   p2.Rg(); delay(100); p4.Lf();  delay(100); p3.Up(); delay(100);
   p5.Up(); delay(100); p2.Up();  delay(100); p3.Rg(); delay(100);
   p4.Up(); delay(100); p5.Lf();  delay(100); p2.Up(); delay(100);
   p4.Up(); delay(100); p3.Rg();  delay(100); p5.Lf(); delay(100);
   setcolor(0);
   setfillstyle(1,0);
   bar3d(278,260,390,280,0,0);  //efface get ready

}
//..............................les metodes  de deplacement de depart.......
void Virus::Up()
{
Cache();
y-=14;
Affiche(0);
}
//..........................................................................
void Virus::Rg()
{
Cache();
x+=14;
Affiche(0);
}
//..........................................................................
void Virus::Lf()
{
Cache();
x-=14;
Affiche(0);
}
//.......................sauvegarde  de position initiale..................
void Pacman::Restore()
{
x=168+lin+21;
y=210+col+21+98;
}
//..........................................................................
void Virus::Restore2()
{
x=154+lin+21;
y=182+col+21;
}
//..........................................................................
void Virus::Restore3()
{
x=182+lin+21;
y=182+col+21,14;
}
//..........................................................................
void Virus::Restore4()
{
x=196+lin+21;
y=182+col+21,4;
}
//..........................................................................
void Virus::Restore5()
{
x=168+lin+21;
y=182+col+21;
}

//------------------------------- affichage du stage -----------------------
void Stage::affiche_stage(int n)
{ setcolor(12);
SetPalette(&sDisplay, &v.ihHeader);
DisplayImage(&sDisplay, &v12,5,28,0);
DisplayImage(&sDisplay, &v13,5,90,0);
DisplayImage(&sDisplay, &v4,10,120,0);   //v4 dessine les coeurs
DisplayImage(&sDisplay, &v4,30,120,0);   //
DisplayImage(&sDisplay, &v4,50,120,0);   //
DisplayImage(&sDisplay, &v14,5,160,0);
DisplayImage(&sDisplay, &v15,20,200,0);
DisplayImage(&sDisplay, &v16,20,230,0);
DisplayImage(&sDisplay, &v17,20,260,0);
DisplayImage(&sDisplay, &v20,540,28,0);     //dessine level

if(n==1)DisplayImage(&sDisplay, &v21,610,28,0);     //dessine level
if(n==2)DisplayImage(&sDisplay, &v22,610,28,0);     //dessine level
if(n==3)DisplayImage(&sDisplay, &v23,610,28,0);     //dessine level
int p=0;
gotoxy(12,3);printf("%d",p);
gotoxy(12,13);printf("%d",p);
gotoxy(12,15);printf("%d",p);
gotoxy(12,17);printf("%d",p);
 int H = open("Grille.txt",O_RDWR | O_BINARY);  //charge la grille from a fichier
 if(H!=-1)
  {
   char c;
   for(int j=0;j<32;j++)
    {
     for(int i=0;i<31;i++)
      {
       read(H,&c,1);
       if(c!=13 );
	{
	setcolor(12);
	setfillstyle(1,12);
	 if(c=='1') {bar3d(14*i+lin,14*j+col,14*i+lin+14,14*j+col+14,0,0);}

      }
     }
  }

   close(H);
 }

}
//.............................affiche les boules a boufer..................
void Stage::point_stage()
{

for (int i=0;i<30;i++)
  for(int j=0;j<33;j++)
     {if (getpixel(14*i+lin,14*j+col)==0)
     {setcolor(2);setfillstyle(SOLID_FILL,2);pieslice(14*i+lin,14*j+col,0,360,1);}}
	setcolor(15);
	setfillstyle(1,15);
	pieslice(lin+28,120-17,0,360,3);
	pieslice(lin+380-2,120-17,0,360,3);
	pieslice(lin+28,380+17,0,360,3);
	pieslice(lin+380-2,380+17,0,360,3);
}
//-----------------------------parti animation de classe stage--------------
//----------------------------animation de game ovre -----------------------
void Stage::Over()
{
setcolor(0);
setfillstyle(1,0);
bar3d(0,0,120,20,0,0);
gotoxy(1,1);printf("GAME-OVER");
for (int i2=0;i2<=120;i2++)
  for (int j2=0;j2<=15;j2++)
  {
    setcolor(j2%9+8);
    setfillstyle(1,j2%9+8);                                        if (getpixel(i2,j2)!=BLACK) pieslice(i2*6+130,j2*6+200,0,360,5);
    delay(5);
  }
}
//----------------------------animation hight score-----------------------
void Stage::Animation(char *name[40],int hight)
{
gotoxy(1,1);printf("%s",name);
gotoxy(1,2);printf("%d",hight);
for (int i2=0;i2<=100;i2++)
  for (int j2=0;j2<=100;j2++)
  {
    setcolor(j2%9+8);
    setfillstyle(1,j2%9+8);
    if (getpixel(i2,j2)!=BLACK) {putpixel(i2,j2,0);pieslice(i2*8+130,j2*8+150,0,360,2);}
  }

}
//----------------------- animation de victoire--------------------------
void Stage::Winner()
{
int x1,y1,c1;
setcolor(0);
setfillstyle(1,0);
bar3d(0,0,120,20,0,0);
      t_image load;
   LoadImage(&sDisplay, "bmp/star.bmp", &load);              //affichage  d'etoiles

   DisplayImage(&sDisplay, &load,0,0,0);
for(int l=1;l<30;l++)
{
c1=rand()%10;
x1=rand()%400;
y1=rand()%300;
for (int i2=0;i2<=20;i2++)
  for (int j2=0;j2<=25;j2++)
  {
    setcolor(l);
    setfillstyle(1,l);
    if (getpixel(i2,j2)!=BLACK) pieslice(i2*c1+x1,j2*c1+y1,0,360,2);

  }
}
setcolor(0);
setfillstyle(1,0);
bar3d(0,0,120,20,0,0);
gotoxy(1,1);printf("WINNER");                //affiche winner
for (int i2=0;i2<=60;i2++)
  for (int j2=0;j2<=15;j2++)
  { delay(1);
    setcolor(15);
    setfillstyle(1,15);
    if (getpixel(i2,j2)!=BLACK) pieslice(i2*6+200,j2*6+210,0,360,5);

  }
setcolor(0);
setfillstyle(1,0);
bar3d(195,240,480,256,0,0);
delay(1000);
DestroyImage(&load);            //destructio d'image
}

//*************************programme principale***************************
void main()
{

InitGraphics(&sDisplay);
//...............................declaration................................
int n=1,bool=1,hight=0;
char nb;
char *name[40];
cleardevice();
Stage s(1);
Virus p5(154+lin+21,182+col+21,1),p2(182+lin+21,182+col+21,14),p3(196+lin+21,182+col+21,4),p4(168+lin+21,182+col+21,9);
Pacman p1(168+lin+21,210+col+21+98,15,2);

//.....................animation d'entr?.....................................
s.Load();
s.Intro();

//......................chargement des images................................
    LoadImage(&sDisplay, "bmp/blueky.bmp", &v);
      LoadImage(&sDisplay, "bmp/pipky.bmp", &v1);
      LoadImage(&sDisplay, "bmp/redky.bmp", &v2);
      LoadImage(&sDisplay, "bmp/coeur1.bmp", &v4);
      LoadImage(&sDisplay, "bmp/vide.bmp", &v5);
      LoadImage(&sDisplay, "bmp/yelky.bmp", &v6);
      LoadImage(&sDisplay, "bmp/hich.bmp", &v7);
      LoadImage(&sDisplay, "bmp/hich_g.bmp", &v8);
      LoadImage(&sDisplay, "bmp/hich_h.bmp",&v9);
      LoadImage(&sDisplay, "bmp/hich_bas.bmp",&v10);
      LoadImage(&sDisplay, "bmp/hich_b.bmp",&v11);
      LoadImage(&sDisplay, "bmp/score.bmp",&v12);
      LoadImage(&sDisplay, "bmp/life.bmp",&v13);
      LoadImage(&sDisplay, "bmp/bonus.bmp",&v14);
      LoadImage(&sDisplay, "bmp/pomme.bmp",&v15);
      LoadImage(&sDisplay, "bmp/banane.bmp",&v16);
      LoadImage(&sDisplay, "bmp/rizen.bmp",&v17);
      LoadImage(&sDisplay, "bmp/peur.bmp",&v18);
      LoadImage(&sDisplay, "bmp/getready.bmp",&v19);
      LoadImage(&sDisplay, "bmp/level.bmp",&v20);
      LoadImage(&sDisplay, "bmp/1.bmp",&v21);
      LoadImage(&sDisplay, "bmp/2.bmp",&v22);
      LoadImage(&sDisplay, "bmp/3.bmp",&v23);
      LoadImage(&sDisplay, "bmp/registre.bmp",&v24);
//.....................affiche stage.................................................
s.affiche_stage(n);
s.point_stage();
p1.SPE_M(80);    //vitesse de depart
//..........................................................................
while(bool)
{
  while((p1.lecCPT()!=mm)&&(p1.lecVie()!=-1))
    { Getout(p2,p3,p4,p5);
      Command1(p1,p2,p3,p4,p5);
      p1.Restore();
      p5.Restore2();
      p2.Restore3();
      p3.Restore4();
      p4.Restore5();
      p1.SUB();
      p1.vieSUB();
      p1.Affiche1(0);
      vrai=1;
    }
if (p1.lecCPT()==mm)
		    {
		     cleardevice();
		     s.affiche_stage(n);
		     gotoxy(12,3); printf("%d",p1.lec_cpt()+p1.lec_rai()+p1.lec_ban()+p1.lec_pom());

		     delay(1000);

		     if (n<3)
		     {
			  s.Winner();
			  gotoxy(30,16);printf("VOULEZ VOUS CONTINUER O/N :");
			  scanf("%s",&nb);
			  if( nb =='n') bool=0;
			  else
			       {
			       n+=1;
			       cleardevice();p1.REMISE_0();p2.REMISE_0(); p3.REMISE_0();p4.REMISE_0();p5.REMISE_0();
			       s.affiche_stage(n);
			       s.point_stage();
			       p1.SPE_M(p1.lecS()-40);
			       }

		     }else if(n=3) bool=0;
		   }
else {bool=0;}
if(p1.lecVie()==-1){s.Over();bool=0;}
hight+=p1.lec_cpt()+p1.lec_rai()+p1.lec_ban()+p1.lec_pom();
}

	   cleardevice();
	   DisplayImage(&sDisplay, &v24,200,200,0);
	   gotoxy(35,19);scanf("%s",&name);
	   delay(100);
	   cleardevice();
	   s.Animation(name,hight);
	   printf("%d",hight);

DestroyImage(&v);
DestroyImage(&v1);
DestroyImage(&v2);
DestroyImage(&v3);
DestroyImage(&v4);
DestroyImage(&v5);
DestroyImage(&v6);
DestroyImage(&v7);
DestroyImage(&v8);
DestroyImage(&v9);
DestroyImage(&v10);
DestroyImage(&v11);
DestroyImage(&v12);
DestroyImage(&v13);
DestroyImage(&v14);
DestroyImage(&v15);
DestroyImage(&v16);
DestroyImage(&v17);
DestroyImage(&v18);
DestroyImage(&v19);
DestroyImage(&v20);
DestroyImage(&v21);
DestroyImage(&v22);
DestroyImage(&v23);
DestroyImage(&v24);

getch();

}

Conclusion :


il manque le zip la semaine prochaine je les completerai

peut etre y a un probleme avec l'instruction <delay> dans certain pc vous remarqué que le jeu ne fonctionne pas correctement .
je vous assurre que le jeu est bien fait et se probleme et hors de mes connaissance.

Codes Sources

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.