Accueil > > > SERPENT
SERPENT
Information sur la source
Description
je commence un jeu de serpent en turbo c++ 3.... le principe du jeu est opérationnel mais je suis en train de l'amélioré!!!!
Source
- /* PIXEL.CPP--Example from Chapter 5 of User's Guide */
- #include <graphics.h> // declarations for graphics library
- #include <conio.h> // for getch() function
- #include <dos.h>
- //#include <time.h>
- #include <iostream.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-
- //************CONSTANTES***********************************************
-
- #define MinI 0
- #define MinJ 0
- #define MaxI 100
- #define MaxJ 110
-
- //************VARIABLES GLOBALES***************************************
- struct TDep
- {
- int I;
- int J;
- int Dir;
- };
- TDep Coin[5000];
-
- struct Tfleche
- {
- int h;
- int b;
- int g;
- int d;
- };
- Tfleche fl;
-
- struct TDirection
- {
- int Avant;
- int Vers;
- };
-
- struct Tserpent
- {
- int I;
- int J;
- };
- Tserpent Serpent[5000];
-
- int hasardI,hasardJ;
- int i,Idebut,Jdebut,Ifin,Jfin,Vitesse;
- int NouveauCoin,DepCoin,Av;
- int TailleJ,Coul;
- int Point;
- TDirection Direction; //1 pour gauche, 2 pour en bas, 3 pour la droite, 5 pour en haut
-
-
- //************PROTOTYPAGES*********************************************
- void INITgraph(); //On initialise la carte graphique
- void InitSerpent(int coul); //On initialise le serpent et on le dessine
- void GestionTete(); //On gSre la direction de la t^te pour un cycle de jeu
- void GestionQueue(); //Idem, pour la queue
- void INITt(); //On initialise les tableaux . z,ro
- int MangeCorps(); //Fonction qui renvoie 1, si le serpent . manger son corps
- void RempSerp(); //On remplit les cases du tableaux du serpent avec les coordonn,es actuelles
- void DessinerContour(); //On dessine les murs
- void AffichePomme(); //On affiche une pomme avec des coordonn,es au hasard
- void MangePomme(); //On gSre si on doit afficher une nouvelle pomme
- void RempSerpPomme(); //On remplie le tableau du serpent quand il mange une pomme
- void SupprimeQueue(); //On supprime tous les pixels de la queue
- void DessineLangue(); //On dessine une langue . un moment donn, (g,n,r, au hasard)
-
- //************DEBUT DES FONCTIONS ET PROCEDURES************************
- int main()
- {
- //time_t t;
-
- INITgraph(); //Initialisation de la carte graphique
- INITt();
-
- fl.h=5;//Touches de direction
- fl.b=2;//pourront ^tre chang,es
- fl.g=1;
- fl.d=3;
-
- NouveauCoin=0;
- DepCoin=0;
- Av=0;
- Coin[NouveauCoin].Dir=fl.d;
- TailleJ=40;
- Coul=6;
- Point=0;
-
- int midx = MinJ+20;
- int midy = MaxI+20;
- char *ch;
-
- InitSerpent(Coul); //On dessine le serpent du d,but
-
- Coin[NouveauCoin].I=Idebut;
- Coin[NouveauCoin].J=Jdebut;
-
- Vitesse=50; //On rSgle la vitesse
- Direction.Avant=Idebut;
- Direction.Vers=fl.d; //Direction du d,but
- DessinerContour();
- AffichePomme();
-
- while((MangeCorps()!=1) && (Idebut>MinI) && (Idebut<MaxI) && (Jdebut>MinJ) && (Jdebut<MaxJ))
- {
-
- GestionTete();
- GestionQueue();
- MangePomme();
- DessinerContour();
-
- window(10,10,20,20);
- cout<<"\\nPoints Gagn,s : "<<Point<<"\\n";
- cout<<"Longueur du serpent : "<<TailleJ<<"\\n";
- cout<<"Tete (i) : "<<Idebut<<"\\n";
- cout<<"Tete (j): "<<Jdebut<<"\\n";
- cout<<"Coordonn,es de la pomme : \\n";
- cout<<" I : "<<hasardI<<"\\n";
- cout<<" J : "<<hasardJ<<"\\n";
- cout<<"Vitesse : "<<Vitesse;
- delline;
- delay(Vitesse);
-
- }
- closegraph();//on remet la configuration par d,faut de l',cran
-
- getch();
- return 0;
- }
-
- void MangePomme()
- {
-
-
- if((Idebut==hasardI)&&(Jdebut==hasardJ)||(Idebut==hasardI+1)&&
- (Jdebut==hasardJ)||(Idebut==hasardI)&&(Jdebut==hasardJ+1)||
- (Idebut==hasardI-1)&&(Jdebut==hasardJ)||
- (Idebut==hasardI)&&(Jdebut==hasardJ-1))
- //Si les coordonn,es de la t^te corrspondent avec celle de la pomme
- {
-
- //On efface la pomme pr,c,dente qui a ,t, mang,e
- putpixel(hasardJ,hasardI,0);
- putpixel(hasardJ+1,hasardI,0);
- putpixel(hasardJ,hasardI+1,0);
- putpixel(hasardJ-1,hasardI,0);
- putpixel(hasardJ,hasardI-1,0);
-
- switch(Direction.Vers)
- {
- case 1 :Jdebut--;
- putpixel(Jdebut,Idebut,Coul);
- break;
- case 2 :
- Idebut++;
- putpixel(Jdebut,Idebut,Coul);
- break;
- case 3 :
- Jdebut++;
- putpixel(Jdebut,Idebut,Coul);
- break;
- case 5 :
- Idebut--;
- putpixel(Jdebut,Idebut,Coul);
- break;
- }
- Point++;
- if(Point%10==0)
- Vitesse-=3;//Augmentation de la vitesse
- RempSerpPomme();
- AffichePomme();
-
- }
- }
-
-
- void RempSerpPomme()
- {
- TailleJ++;
- for(int i=1;i<=TailleJ;i++)
- {
- Serpent[i].I=Serpent[i-1].I;//on d,place les coordonn,es vers la droite dans le tableau
- Serpent[i].J=Serpent[i-1].J;
-
- }
- Serpent[0].I=Ifin;//le d,but du serpent prend les nouvelles coordonn,es
- Serpent[0].J=Jfin;
- }
-
- void AffichePomme()
- {
- int Val;
-
- Val=1;
- randomize();
- do
- {
- hasardJ=(rand()%(MaxJ-1))+2; //les nouvelles coordonn,es th,oriques de la pomme
- hasardI=(rand()%(MaxI-1))+1;
- //Il ne faut pas que les coordonn,es de la pomme tombent sur le serpent
- for(int j=0;j<=TailleJ;j++)
- {
- if((Serpent[j].I!=hasardI)&&(Serpent[j].J!=hasardJ))
- Val=0;
- }
- }while(Val==1);
- putpixel(hasardJ,hasardI,2);
- putpixel(hasardJ+1,hasardI,2);
- putpixel(hasardJ,hasardI+1,2);
- putpixel(hasardJ-1,hasardI,2);
- putpixel(hasardJ,hasardI-1,2);
- }
-
- void DessinerContour()
- {
- int i,j;
-
- for(i=MinI;i<=MaxI;i++)
- {
- putpixel(MinI,i,3);
- putpixel(MaxJ,i,3);
- }
- for(j=MinJ;j<=MaxJ;j++)
- {
- putpixel(j,MinJ,3);
- putpixel(j,MaxI,3);
- }
- }
-
- void RempSerp()
- {
- int i;
-
- for(i=0;i<=(TailleJ-1);i++)
- {
- Serpent[i].I=Serpent[i+1].I;
- Serpent[i].J=Serpent[i+1].J;
- }
- }
-
- int MangeCorps()
- {
- int i;
- int Toucher;
-
- Toucher=0;
-
- for(i=0;i<TailleJ-1;i++)
- {
- if((Serpent[i].I==Idebut) && (Serpent[i].J)==Jdebut)
- Toucher=1;
- }
-
- return(Toucher);
-
- }
- void INITt()
- {
- int i;
-
- for(i=0;i<=5000;i++)
- {
- Serpent[i].I=0;
- Serpent[i].J=0;
- Coin[i].I=0;
- Coin[i].J=0;
- Coin[i].Dir=0;
- }
- }
-
- void GestionTete()
- {
- int Touche;
-
- if(kbhit()) //Si on a appuy, sur une touche
- {
- Coin[NouveauCoin].I=Idebut; //On r,cupSre les nouvelles...
- Coin[NouveauCoin].J=Jdebut; //...coordonn,es pour chaque changement de direction
-
- Touche=getch(); //On r,cupSre la valeur de la touche
- switch(Touche)
- {
- //pour chaque direction : il ne faut pas...
- //qu'on soit sur la m^me ligne si on veut faire ...
- //demi-tour
-
- case 49 : if(Direction.Avant!=Idebut)
- {
- Direction.Vers=fl.g;
- Direction.Avant=Idebut;
- }break;
-
- case 50 : if(Direction.Avant!=Jdebut)
- {
- Direction.Vers=fl.b;
- Direction.Avant=Jdebut;
- }break;
-
- case 51 : if(Direction.Avant!=Idebut)
- {
- Direction.Vers=fl.d;
- Direction.Avant=Idebut;
- }break;
-
- case 53 : if(Direction.Avant!=Jdebut)
- {
- Direction.Vers=fl.h;
- Direction.Avant=Jdebut;
- }break;
- }
- NouveauCoin++;
- Coin[NouveauCoin].Dir=Direction.Vers;
- }
- else //Si on n'a press, aucune touche, le serpent...
- { //...continue . avancer dans la m^me direction
- switch(Direction.Vers)
- {
- case 1 : Jdebut--;
- Serpent[TailleJ].I=Idebut;//pour connaOtre les coordonn,es de tout le serpent
- Serpent[TailleJ].J=Jdebut;
- RempSerp();break;
-
- case 2 : Idebut++;
- Serpent[TailleJ].I=Idebut;//pour connaOtre les coordonn,es de tout le serpent
- Serpent[TailleJ].J=Jdebut;
- RempSerp();break;
-
- case 3 : Jdebut++;
- Serpent[TailleJ].I=Idebut;//pour connaOtre les coordonn,es de tout le serpent
- Serpent[TailleJ].J=Jdebut;
- RempSerp();break;
-
- case 5 : Idebut--;
- Serpent[TailleJ].I=Idebut;//pour connaOtre les coordonn,es de tout le serpent
- Serpent[TailleJ].J=Jdebut;
- RempSerp();break;
- }
- Coin[NouveauCoin].I=Idebut; //On r,cupSre les nouvelles...
- Coin[NouveauCoin].J=Jdebut; //...coordonn,es pour chaque changement de direction
- }
- putpixel(Jdebut,Idebut,Coul);//on ajoute un pixel pour la t^te
- DessineLangue();
- switch(Direction.Vers)
- {
- case 3:
- putpixel(Jdebut,Idebut-1,Coul);
- putpixel(Jdebut,Idebut+1,Coul);break;
-
- case 1:
- putpixel(Jdebut,Idebut-1,Coul);
- putpixel(Jdebut,Idebut+1,Coul);break;
-
- case 2:
- putpixel(Jdebut-1,Idebut,Coul);
- putpixel(Jdebut+1,Idebut,Coul);break;
-
- case 5:
- putpixel(Jdebut-1,Idebut,Coul);
- putpixel(Jdebut+1,Idebut,Coul);break;
- }
- }
-
-
- void DessineLangue()
- {
- switch(Direction.Vers)
- {
- case 1 :
- putpixel(Jdebut-1,Idebut,12);break;
-
- case 2:
- putpixel(Jdebut,Idebut+1,5);break;
-
- case 3:
- putpixel(Jdebut+1,Idebut,5);break;
-
- case 5 :
- putpixel(Jdebut,Idebut-1,5);break;
- }
- }
-
- void GestionQueue()
- {
- switch(Coin[DepCoin].Dir)
- //selon la direction du Prochain coin (angle o- la t^te du serpent change de direction)
- {
- case 1 : if(Jfin>(Coin[DepCoin].J))
- {
- Jfin--;
- Serpent[0].I=Ifin;
- Serpent[0].J=Jfin;
-
- }
- else
- DepCoin++;break;
- case 2 :if(Ifin<(Coin[DepCoin].I))
- {
- Serpent[0].I=Ifin;
- Serpent[0].J=Jfin;
- Ifin++;
-
- }
- else
- DepCoin++;break;
- case 3 : if(Jfin<(Coin[DepCoin].J))
- {
- Serpent[0].I=Ifin;
- Serpent[0].J=Jfin;
- Jfin++;
-
- }
- else
- DepCoin++;break;
- case 5 : if(Ifin>Coin[DepCoin].I)
- {
- Serpent[0].I=Ifin;
- Serpent[0].J=Jfin;
- Ifin--;
-
- }
- else
- DepCoin++;break;
- }
-
- SupprimeQueue(); //on efface un pixel de la queue
-
- }
-
-
- void SupprimeQueue()
- {
- switch(Coin[DepCoin].Dir)
- {
- case 3:
- putpixel(Jfin,Ifin,0);
- putpixel(Jfin,Ifin-1,0);
- putpixel(Jfin,Ifin+1,0);break;
-
- case 1:
- putpixel(Jfin,Ifin,0);
- putpixel(Jfin,Ifin-1,0);
- putpixel(Jfin,Ifin+1,0);break;
-
- case 2:
- putpixel(Jfin,Ifin,0);
- putpixel(Jfin-1,Ifin,0);
- putpixel(Jfin+1,Ifin,0);break;
-
- case 5:
- putpixel(Jfin,Ifin,0);
- putpixel(Jfin-1,Ifin,0);
- putpixel(Jfin+1,Ifin,0);break;
- }
- }
-
- void InitSerpent(int coul)
- {
- Idebut=2;
- Jdebut=TailleJ;
- Ifin=2;
- Jfin=2;
-
- for(Av=0;Av<=Jdebut;Av++)//On trace le serpent du d,but
- {
- putpixel(2+Av,Idebut,coul);
- putpixel(2+Av,Idebut-1,coul);
- putpixel(2+Av,Idebut+1,coul);
- Serpent[Av].I=Idebut;
- Serpent[Av].J=i;
- }
- }
- void INITgraph()
- {
- // initialize the graphics system
- int graphdriver = DETECT, graphmode;
- initgraph(&graphdriver, &graphmode, "..//bgi");
-
- }
/* PIXEL.CPP--Example from Chapter 5 of User's Guide */
#include <graphics.h> // declarations for graphics library
#include <conio.h> // for getch() function
#include <dos.h>
//#include <time.h>
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//************CONSTANTES***********************************************
#define MinI 0
#define MinJ 0
#define MaxI 100
#define MaxJ 110
//************VARIABLES GLOBALES***************************************
struct TDep
{
int I;
int J;
int Dir;
};
TDep Coin[5000];
struct Tfleche
{
int h;
int b;
int g;
int d;
};
Tfleche fl;
struct TDirection
{
int Avant;
int Vers;
};
struct Tserpent
{
int I;
int J;
};
Tserpent Serpent[5000];
int hasardI,hasardJ;
int i,Idebut,Jdebut,Ifin,Jfin,Vitesse;
int NouveauCoin,DepCoin,Av;
int TailleJ,Coul;
int Point;
TDirection Direction; //1 pour gauche, 2 pour en bas, 3 pour la droite, 5 pour en haut
//************PROTOTYPAGES*********************************************
void INITgraph(); //On initialise la carte graphique
void InitSerpent(int coul); //On initialise le serpent et on le dessine
void GestionTete(); //On gSre la direction de la t^te pour un cycle de jeu
void GestionQueue(); //Idem, pour la queue
void INITt(); //On initialise les tableaux . z,ro
int MangeCorps(); //Fonction qui renvoie 1, si le serpent . manger son corps
void RempSerp(); //On remplit les cases du tableaux du serpent avec les coordonn,es actuelles
void DessinerContour(); //On dessine les murs
void AffichePomme(); //On affiche une pomme avec des coordonn,es au hasard
void MangePomme(); //On gSre si on doit afficher une nouvelle pomme
void RempSerpPomme(); //On remplie le tableau du serpent quand il mange une pomme
void SupprimeQueue(); //On supprime tous les pixels de la queue
void DessineLangue(); //On dessine une langue . un moment donn, (g,n,r, au hasard)
//************DEBUT DES FONCTIONS ET PROCEDURES************************
int main()
{
//time_t t;
INITgraph(); //Initialisation de la carte graphique
INITt();
fl.h=5;//Touches de direction
fl.b=2;//pourront ^tre chang,es
fl.g=1;
fl.d=3;
NouveauCoin=0;
DepCoin=0;
Av=0;
Coin[NouveauCoin].Dir=fl.d;
TailleJ=40;
Coul=6;
Point=0;
int midx = MinJ+20;
int midy = MaxI+20;
char *ch;
InitSerpent(Coul); //On dessine le serpent du d,but
Coin[NouveauCoin].I=Idebut;
Coin[NouveauCoin].J=Jdebut;
Vitesse=50; //On rSgle la vitesse
Direction.Avant=Idebut;
Direction.Vers=fl.d; //Direction du d,but
DessinerContour();
AffichePomme();
while((MangeCorps()!=1) && (Idebut>MinI) && (Idebut<MaxI) && (Jdebut>MinJ) && (Jdebut<MaxJ))
{
GestionTete();
GestionQueue();
MangePomme();
DessinerContour();
window(10,10,20,20);
cout<<"\\nPoints Gagn,s : "<<Point<<"\\n";
cout<<"Longueur du serpent : "<<TailleJ<<"\\n";
cout<<"Tete (i) : "<<Idebut<<"\\n";
cout<<"Tete (j): "<<Jdebut<<"\\n";
cout<<"Coordonn,es de la pomme : \\n";
cout<<" I : "<<hasardI<<"\\n";
cout<<" J : "<<hasardJ<<"\\n";
cout<<"Vitesse : "<<Vitesse;
delline;
delay(Vitesse);
}
closegraph();//on remet la configuration par d,faut de l',cran
getch();
return 0;
}
void MangePomme()
{
if((Idebut==hasardI)&&(Jdebut==hasardJ)||(Idebut==hasardI+1)&&
(Jdebut==hasardJ)||(Idebut==hasardI)&&(Jdebut==hasardJ+1)||
(Idebut==hasardI-1)&&(Jdebut==hasardJ)||
(Idebut==hasardI)&&(Jdebut==hasardJ-1))
//Si les coordonn,es de la t^te corrspondent avec celle de la pomme
{
//On efface la pomme pr,c,dente qui a ,t, mang,e
putpixel(hasardJ,hasardI,0);
putpixel(hasardJ+1,hasardI,0);
putpixel(hasardJ,hasardI+1,0);
putpixel(hasardJ-1,hasardI,0);
putpixel(hasardJ,hasardI-1,0);
switch(Direction.Vers)
{
case 1 :Jdebut--;
putpixel(Jdebut,Idebut,Coul);
break;
case 2 :
Idebut++;
putpixel(Jdebut,Idebut,Coul);
break;
case 3 :
Jdebut++;
putpixel(Jdebut,Idebut,Coul);
break;
case 5 :
Idebut--;
putpixel(Jdebut,Idebut,Coul);
break;
}
Point++;
if(Point%10==0)
Vitesse-=3;//Augmentation de la vitesse
RempSerpPomme();
AffichePomme();
}
}
void RempSerpPomme()
{
TailleJ++;
for(int i=1;i<=TailleJ;i++)
{
Serpent[i].I=Serpent[i-1].I;//on d,place les coordonn,es vers la droite dans le tableau
Serpent[i].J=Serpent[i-1].J;
}
Serpent[0].I=Ifin;//le d,but du serpent prend les nouvelles coordonn,es
Serpent[0].J=Jfin;
}
void AffichePomme()
{
int Val;
Val=1;
randomize();
do
{
hasardJ=(rand()%(MaxJ-1))+2; //les nouvelles coordonn,es th,oriques de la pomme
hasardI=(rand()%(MaxI-1))+1;
//Il ne faut pas que les coordonn,es de la pomme tombent sur le serpent
for(int j=0;j<=TailleJ;j++)
{
if((Serpent[j].I!=hasardI)&&(Serpent[j].J!=hasardJ))
Val=0;
}
}while(Val==1);
putpixel(hasardJ,hasardI,2);
putpixel(hasardJ+1,hasardI,2);
putpixel(hasardJ,hasardI+1,2);
putpixel(hasardJ-1,hasardI,2);
putpixel(hasardJ,hasardI-1,2);
}
void DessinerContour()
{
int i,j;
for(i=MinI;i<=MaxI;i++)
{
putpixel(MinI,i,3);
putpixel(MaxJ,i,3);
}
for(j=MinJ;j<=MaxJ;j++)
{
putpixel(j,MinJ,3);
putpixel(j,MaxI,3);
}
}
void RempSerp()
{
int i;
for(i=0;i<=(TailleJ-1);i++)
{
Serpent[i].I=Serpent[i+1].I;
Serpent[i].J=Serpent[i+1].J;
}
}
int MangeCorps()
{
int i;
int Toucher;
Toucher=0;
for(i=0;i<TailleJ-1;i++)
{
if((Serpent[i].I==Idebut) && (Serpent[i].J)==Jdebut)
Toucher=1;
}
return(Toucher);
}
void INITt()
{
int i;
for(i=0;i<=5000;i++)
{
Serpent[i].I=0;
Serpent[i].J=0;
Coin[i].I=0;
Coin[i].J=0;
Coin[i].Dir=0;
}
}
void GestionTete()
{
int Touche;
if(kbhit()) //Si on a appuy, sur une touche
{
Coin[NouveauCoin].I=Idebut; //On r,cupSre les nouvelles...
Coin[NouveauCoin].J=Jdebut; //...coordonn,es pour chaque changement de direction
Touche=getch(); //On r,cupSre la valeur de la touche
switch(Touche)
{
//pour chaque direction : il ne faut pas...
//qu'on soit sur la m^me ligne si on veut faire ...
//demi-tour
case 49 : if(Direction.Avant!=Idebut)
{
Direction.Vers=fl.g;
Direction.Avant=Idebut;
}break;
case 50 : if(Direction.Avant!=Jdebut)
{
Direction.Vers=fl.b;
Direction.Avant=Jdebut;
}break;
case 51 : if(Direction.Avant!=Idebut)
{
Direction.Vers=fl.d;
Direction.Avant=Idebut;
}break;
case 53 : if(Direction.Avant!=Jdebut)
{
Direction.Vers=fl.h;
Direction.Avant=Jdebut;
}break;
}
NouveauCoin++;
Coin[NouveauCoin].Dir=Direction.Vers;
}
else //Si on n'a press, aucune touche, le serpent...
{ //...continue . avancer dans la m^me direction
switch(Direction.Vers)
{
case 1 : Jdebut--;
Serpent[TailleJ].I=Idebut;//pour connaOtre les coordonn,es de tout le serpent
Serpent[TailleJ].J=Jdebut;
RempSerp();break;
case 2 : Idebut++;
Serpent[TailleJ].I=Idebut;//pour connaOtre les coordonn,es de tout le serpent
Serpent[TailleJ].J=Jdebut;
RempSerp();break;
case 3 : Jdebut++;
Serpent[TailleJ].I=Idebut;//pour connaOtre les coordonn,es de tout le serpent
Serpent[TailleJ].J=Jdebut;
RempSerp();break;
case 5 : Idebut--;
Serpent[TailleJ].I=Idebut;//pour connaOtre les coordonn,es de tout le serpent
Serpent[TailleJ].J=Jdebut;
RempSerp();break;
}
Coin[NouveauCoin].I=Idebut; //On r,cupSre les nouvelles...
Coin[NouveauCoin].J=Jdebut; //...coordonn,es pour chaque changement de direction
}
putpixel(Jdebut,Idebut,Coul);//on ajoute un pixel pour la t^te
DessineLangue();
switch(Direction.Vers)
{
case 3:
putpixel(Jdebut,Idebut-1,Coul);
putpixel(Jdebut,Idebut+1,Coul);break;
case 1:
putpixel(Jdebut,Idebut-1,Coul);
putpixel(Jdebut,Idebut+1,Coul);break;
case 2:
putpixel(Jdebut-1,Idebut,Coul);
putpixel(Jdebut+1,Idebut,Coul);break;
case 5:
putpixel(Jdebut-1,Idebut,Coul);
putpixel(Jdebut+1,Idebut,Coul);break;
}
}
void DessineLangue()
{
switch(Direction.Vers)
{
case 1 :
putpixel(Jdebut-1,Idebut,12);break;
case 2:
putpixel(Jdebut,Idebut+1,5);break;
case 3:
putpixel(Jdebut+1,Idebut,5);break;
case 5 :
putpixel(Jdebut,Idebut-1,5);break;
}
}
void GestionQueue()
{
switch(Coin[DepCoin].Dir)
//selon la direction du Prochain coin (angle o- la t^te du serpent change de direction)
{
case 1 : if(Jfin>(Coin[DepCoin].J))
{
Jfin--;
Serpent[0].I=Ifin;
Serpent[0].J=Jfin;
}
else
DepCoin++;break;
case 2 :if(Ifin<(Coin[DepCoin].I))
{
Serpent[0].I=Ifin;
Serpent[0].J=Jfin;
Ifin++;
}
else
DepCoin++;break;
case 3 : if(Jfin<(Coin[DepCoin].J))
{
Serpent[0].I=Ifin;
Serpent[0].J=Jfin;
Jfin++;
}
else
DepCoin++;break;
case 5 : if(Ifin>Coin[DepCoin].I)
{
Serpent[0].I=Ifin;
Serpent[0].J=Jfin;
Ifin--;
}
else
DepCoin++;break;
}
SupprimeQueue(); //on efface un pixel de la queue
}
void SupprimeQueue()
{
switch(Coin[DepCoin].Dir)
{
case 3:
putpixel(Jfin,Ifin,0);
putpixel(Jfin,Ifin-1,0);
putpixel(Jfin,Ifin+1,0);break;
case 1:
putpixel(Jfin,Ifin,0);
putpixel(Jfin,Ifin-1,0);
putpixel(Jfin,Ifin+1,0);break;
case 2:
putpixel(Jfin,Ifin,0);
putpixel(Jfin-1,Ifin,0);
putpixel(Jfin+1,Ifin,0);break;
case 5:
putpixel(Jfin,Ifin,0);
putpixel(Jfin-1,Ifin,0);
putpixel(Jfin+1,Ifin,0);break;
}
}
void InitSerpent(int coul)
{
Idebut=2;
Jdebut=TailleJ;
Ifin=2;
Jfin=2;
for(Av=0;Av<=Jdebut;Av++)//On trace le serpent du d,but
{
putpixel(2+Av,Idebut,coul);
putpixel(2+Av,Idebut-1,coul);
putpixel(2+Av,Idebut+1,coul);
Serpent[Av].I=Idebut;
Serpent[Av].J=i;
}
}
void INITgraph()
{
// initialize the graphics system
int graphdriver = DETECT, graphmode;
initgraph(&graphdriver, &graphmode, "..//bgi");
}
Conclusion
desole mais pour linstant jai plus winzip.... donc pour l'exe , compilez le ...jen sui vraimen desolé!!
je viens de l'améliorer : 11/12/03 !!!
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|