diff --git a/SAE_semestre1/fichier.h/Oeuf.h b/SAE_semestre1/fichier.h/Oeuf.h new file mode 100755 index 0000000..a998f00 --- /dev/null +++ b/SAE_semestre1/fichier.h/Oeuf.h @@ -0,0 +1,7 @@ +#ifndef OEUF_H +#define OEUF_H + +void InitialiserOeufs(int oeufx[], int oeufy[], int segment); +void Oeuf(int pos_x[], int pos_y[], int oeufx[], int oeufy[], int *segment); + +#endif diff --git a/SAE_semestre1/fichier.h/pastille.h b/SAE_semestre1/fichier.h/pastille.h deleted file mode 100755 index d456071..0000000 --- a/SAE_semestre1/fichier.h/pastille.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef PASTILLE_H -#define PASTILLE_H - -void InitialiserPommes(int pommex[], int pommey[], int segment); -void Pomme(int pos_x[], int pos_y[], int pommex[], int pommey[], int *segment); - -#endif diff --git a/SAE_semestre1/fichier.h/serpent.h b/SAE_semestre1/fichier.h/serpent.h index 738ad6e..42094a5 100755 --- a/SAE_semestre1/fichier.h/serpent.h +++ b/SAE_semestre1/fichier.h/serpent.h @@ -3,6 +3,6 @@ void Serpent(int pos_x[], int pos_y[], int old_x[], int old_y[], int *segment, int murx[], int mury[], int *go_on, int *direction); void Collision_Serpent(int pos_x[], int pos_y[], int segment, int murx[], int mury[], int *go_on); -void Update_Serpent(int pos_x[], int pos_y[], int segment, int old_x[], int old_y[]); +void Update_Serpent(int pos_x[], int pos_y[], int segment, int old_x[], int old_y[], int*); void Controle(int *direction, int last_direction, int *go_on); #endif diff --git a/SAE_semestre1/fichier.h/terrain.h b/SAE_semestre1/fichier.h/terrain.h index 0ddf113..038c41d 100755 --- a/SAE_semestre1/fichier.h/terrain.h +++ b/SAE_semestre1/fichier.h/terrain.h @@ -1,6 +1,6 @@ #ifndef TERRAIN_H #define TERRAIN_H -void DessinerScene(int murx[30], int mury[30]); +void DessinerScene(int murx[30], int mury[30], int minute, int seconde, char timer []); #endif diff --git a/SAE_semestre1/fichier.h/time.h b/SAE_semestre1/fichier.h/time.h index 8aa397b..038f0bc 100755 --- a/SAE_semestre1/fichier.h/time.h +++ b/SAE_semestre1/fichier.h/time.h @@ -3,5 +3,7 @@ void Score(int segment); +void Update_Timer(int, int, char[]); +void Timer(int*, int*, unsigned long int*, int*, int*, char[]); #endif \ No newline at end of file diff --git a/SAE_semestre1/img/cactus.png b/SAE_semestre1/img/cactus.png new file mode 100644 index 0000000..1fdf361 Binary files /dev/null and b/SAE_semestre1/img/cactus.png differ diff --git a/SAE_semestre1/img/fond.png b/SAE_semestre1/img/fond.png index ac92646..612857c 100755 Binary files a/SAE_semestre1/img/fond.png and b/SAE_semestre1/img/fond.png differ diff --git a/SAE_semestre1/img/mur.png b/SAE_semestre1/img/mur.png deleted file mode 100755 index 2c4a479..0000000 Binary files a/SAE_semestre1/img/mur.png and /dev/null differ diff --git a/SAE_semestre1/img/oeuf.png b/SAE_semestre1/img/oeuf.png new file mode 100644 index 0000000..32beb4c Binary files /dev/null and b/SAE_semestre1/img/oeuf.png differ diff --git a/SAE_semestre1/img/pomme.png b/SAE_semestre1/img/pomme.png deleted file mode 100644 index 0514da1..0000000 Binary files a/SAE_semestre1/img/pomme.png and /dev/null differ diff --git a/SAE_semestre1/img/serpent.png b/SAE_semestre1/img/serpent.png deleted file mode 100755 index cdeccde..0000000 Binary files a/SAE_semestre1/img/serpent.png and /dev/null differ diff --git a/SAE_semestre1/src/Oeuf.c b/SAE_semestre1/src/Oeuf.c new file mode 100755 index 0000000..00953a7 --- /dev/null +++ b/SAE_semestre1/src/Oeuf.c @@ -0,0 +1,27 @@ +#include +#include +#include "../fichier.h/Oeuf.h" + +void InitialiserOeufs(int oeufx[], int oeufy[], int segment) { + int p; + int oeuf; + for (p = 0; p < 5; p++) { + oeufx[p] = ((rand() % (55) + 1) * 20); + oeufy[p] = ((rand() % (35) + 1) * 20); + ChargerImage("../img/oeuf.png", oeufx[p], oeufy[p],0,0, 20,20); + } +} +void Oeuf(int pos_x[], int pos_y[], int oeufx[], int oeufy[], int *segment){ + int p; + int oeuf; + for (p = 0; p < 5; p++) { + ChargerImage("../img/oeuf.png", oeufx[p], oeufy[p],0,0, 20,20); + } + for(p=0; p<5; p++){ + if(oeufx[p]==pos_x[0] && oeufy[p]==pos_y[0]){ + (*segment) +=2; + oeufx[p] = ((rand() % (55)+1)*20); + oeufy[p] = ((rand() % (35)+1)*20); + } + } +} \ No newline at end of file diff --git a/SAE_semestre1/src/game.c b/SAE_semestre1/src/game.c index b4a4827..b5d4e56 100755 --- a/SAE_semestre1/src/game.c +++ b/SAE_semestre1/src/game.c @@ -8,16 +8,15 @@ void DessinerScene(int murx[], int mury[], int minute, int seconde, char timer []){ int mur; int i; - int fond; snprintf(timer,6,"%02d:%02d", minute ,seconde); - ChoisirCouleurDessin(CouleurParComposante(79,80,35)); + ChoisirCouleurDessin(CouleurParComposante(218,209,77)); RemplirRectangle(20,20,1160,700); ChoisirCouleurDessin(CouleurParComposante(255,255,255)); srand(time(NULL)); for(i=0; i<30; i++){ murx[i] = ((rand() % (55)+1)*20); mury[i] = ((rand() % (35)+1)*20); - ChargerImage("../img/mur.png", murx[i], mury[i],0,0, 20,20); + ChargerImage("../img/cactus.png", murx[i], mury[i],0,0, 20,20); } } void Score(int segment){ @@ -59,12 +58,10 @@ void Update_Serpent(int pos_x[], int pos_y[], int segment, int old_x[], int old_ pos_x[0]=old_x[0]+20; } for (i=0 ; i #include #include "../fichier.h/serpent.h" -#include "../fichier.h/pastille.h" +#include "../fichier.h/Oeuf.h" #include "../fichier.h/time.h" #include "../fichier.h/main.h" #define CYCLE 10000L -int main(void) { +int main(void){ int segment = 10; int go_on = 1; int direction = 4; - int pos_x[60]; - int pos_y[60]; - int old_x[60]; - int old_y[60]; - int pommex[5]; - int pommey[5]; + int minute = 0; + int seconde = 0; + int seconde_actuel = 0; + int old_seconde = 0; + unsigned long int suivant; + int pos_x[2400]; + int pos_y[2400]; + int old_x[2400]; + int old_y[2400]; + int oeufx[5]; + int oeufy[5]; int murx[30]; int mury[30]; + char timer[6]; int *pointeur_segment = &segment; int *pointeur_go_on = &go_on; int *pointeur_direction = &direction; + int *pointeur_minute = &minute; + int *pointeur_seconde = &seconde; + unsigned long int *pointeur_suivant = &suivant; + int *pointeur_seconde_actuel = &seconde_actuel; + int *pointeur_old_seconde = &old_seconde; InitialiserGraphique(); CreerFenetre(350,100,1200,900); EffacerEcran(CouleurParComposante(0,0,0)); - /* suivant = Microsecondes()+CYCLE; - old_seconde=(suivant/1000000)%10;*/ - DessinerScene(murx, mury); - InitialiserPommes(pommex, pommey, segment); + suivant = Microsecondes()+CYCLE; + old_seconde=(suivant/1000000)%10; + DessinerScene(murx, mury, minute, seconde ,timer); + InitialiserOeufs(oeufx, oeufy, segment); + Serpent(pos_x, pos_y, old_x, old_y, pointeur_segment, murx, mury, pointeur_go_on, pointeur_direction); while(go_on){ - /*Timer();*/ - Score(*pointeur_segment); + Timer( pointeur_minute, pointeur_seconde, pointeur_suivant, pointeur_seconde_actuel, pointeur_old_seconde, timer); + Score(segment); Controle(pointeur_direction, 0, pointeur_go_on); - Serpent(pos_x, pos_y, old_x, old_y, pointeur_segment, murx, mury, pointeur_go_on, pointeur_direction); - Pomme(pos_x, pos_y, pommex, pommey, pointeur_segment); + Update_Serpent(pos_x, pos_y, segment, old_x, old_y, pointeur_direction); + Collision_Serpent(pos_x, pos_y, segment, murx, mury, pointeur_go_on); + usleep(100000); + Oeuf(pos_x, pos_y, oeufx, oeufy, pointeur_segment); } - usleep(100000); FermerGraphique(); return EXIT_SUCCESS; -} \ No newline at end of file +} diff --git a/SAE_semestre1/src/pastille.c b/SAE_semestre1/src/pastille.c deleted file mode 100755 index a5499af..0000000 --- a/SAE_semestre1/src/pastille.c +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include -#include "../fichier.h/pastille.h" - -void InitialiserPommes(int pommex[], int pommey[], int segment) { - int p; - int pomme; - pomme = ChargerSprite("../img/pomme.png"); - for (p = 0; p < 5; p++) { - pommex[p] = ((rand() % (55) + 1) * 20); - pommey[p] = ((rand() % (35) + 1) * 20); - AfficherSprite(pomme, pommex[p], pommey[p]); - } -} - -void Pomme(int pos_x[], int pos_y[], int pommex[], int pommey[], int *segment) { - int p; - int pomme; - pomme=ChargerSprite("../img/pomme.png"); - for (p = 0; p < 5; p++) { - AfficherSprite(pomme, pommex[p],pommey[p]); - } - for(p=0; p<5; p++){ - if(pommex[p]==pos_x[0] && pommey[p]==pos_y[0]){ - (*segment) +=2; - pommex[p] = ((rand() % (60)+1)*20); - pommey[p] = ((rand() % (27)+1)*20); - } - } -} \ No newline at end of file diff --git a/SAE_semestre1/src/serpent.c b/SAE_semestre1/src/serpent.c index 190aa38..117bf06 100755 --- a/SAE_semestre1/src/serpent.c +++ b/SAE_semestre1/src/serpent.c @@ -1,38 +1,53 @@ #include #include "../fichier.h/serpent.h" -void Update_Serpent(int pos_x[], int pos_y[], int segment, int old_x[], int old_y[]){ +void Update_Serpent(int pos_x[], int pos_y[], int segment, int old_x[], int old_y[], int* direction){ int i = 0; - int serpent; - AfficherSprite(serpent, pos_x[0], pos_y[0]); for (i=1 ; i1160 || pos_x[0]<=20){ + if (pos_x[0] >1160 || pos_x[0]<=0){ *go_on=0; } /*Serpent contre coté*/ - if (pos_y[0]<40 || pos_y[0] >=700){ + if (pos_y[0]<20 || pos_y[0] >=700){ *go_on=0; } /*Serpent contre Serpent*/ for (i = 1; i < segment; i++) { - if (pos_x[0] == pos_x[i] && pos_y[0] == pos_y[i]) + if (pos_x[0] == pos_x[i] && pos_y[0] == pos_y[i]){ *go_on = 0; + } } /*Serpent contre mur*/ for(i=0; i<30;i++){ @@ -41,6 +56,7 @@ void Collision_Serpent(int pos_x[], int pos_y[], int segment, int murx[], int mu } } } + void Controle(int *direction, int last_direction, int *go_on) { int t; while(ToucheEnAttente()) { @@ -77,30 +93,13 @@ void Controle(int *direction, int last_direction, int *go_on) { } void Serpent(int pos_x[], int pos_y[], int old_x[], int old_y[], int *segment, int murx[], int mury[], int *go_on, int *direction) { int serpent; - int x = 600; - int y = 400; - int i = 0; - serpent=ChargerSprite("../img/serpent.png"); + int i = 0; + pos_x[0] = 600; + pos_y[0] = 400; for (i = 0; i < *segment; i++){ - AfficherSprite(serpent, x-(i*20), y); - pos_x[i]=x-(i*20); - pos_y[i]=y; + pos_x[i]= pos_x[0]; + pos_y[i]= pos_y[0]; old_x[i]=pos_x[i]; old_y[i]=pos_y[i]; } - if (*direction == 1 && *direction != 2 ){ - pos_y[0]=old_y[0]-20; - } - if (*direction == 2 && *direction != 1) { - pos_y[0]=old_y[0]+20; - } - if (*direction == 3 & *direction != 4) { - pos_x[0]=old_x[0]-20; - } - if (*direction == 4 && *direction != 3) { - pos_x[0]=old_x[0]+20; - } - Update_Serpent(pos_x, pos_y, *segment, old_x, old_y); - Collision_Serpent(pos_x, pos_y, *segment, murx, mury, go_on); - usleep(100000); } \ No newline at end of file diff --git a/SAE_semestre1/src/terrain.c b/SAE_semestre1/src/terrain.c index 74b66d7..19d84a4 100755 --- a/SAE_semestre1/src/terrain.c +++ b/SAE_semestre1/src/terrain.c @@ -4,22 +4,19 @@ #include "../fichier.h/terrain.h" #include "../fichier.h/serpent.h" #include "../fichier.h/main.h" -#include "../fichier.h/pastille.h" +#include "../fichier.h/Oeuf.h" -void DessinerScene(int murx[30], int mury[30]){ +void DessinerScene(int murx[], int mury[], int minute, int seconde, char timer []){ int mur; int i; - int fond; - /* snprintf(timer,6,"%02d:%02d", minute ,seconde);*/ - ChoisirCouleurDessin(CouleurParComposante(91,222,122)); + snprintf(timer,6,"%02d:%02d", minute ,seconde); + ChoisirCouleurDessin(CouleurParComposante(218,209,77)); RemplirRectangle(20,20,1160,700); ChoisirCouleurDessin(CouleurParComposante(255,255,255)); - fond = ChargerSprite("../img/fond.png"); - mur = ChargerSprite("../img/mur.png"); srand(time(NULL)); for(i=0; i<30; i++){ murx[i] = ((rand() % (55)+1)*20); mury[i] = ((rand() % (35)+1)*20); - AfficherSprite(mur, murx[i], mury[i]); + ChargerImage("../img/cactus.png", murx[i], mury[i],0,0, 20,20); } } diff --git a/SAE_semestre1/src/time.c b/SAE_semestre1/src/time.c index b4408d0..1a6b578 100755 --- a/SAE_semestre1/src/time.c +++ b/SAE_semestre1/src/time.c @@ -6,17 +6,10 @@ #include "../fichier.h/serpent.h" #define CYCLE 10000L -int seconde=0; -int minute=0; -int seconde_actuel=0; -int old_seconde=0; -unsigned long int suivant; -char timer[6]; - void Score(int segment){ int nombre; char score[4]; - nombre= (segment-10)*10; + nombre= (segment-10)*25; snprintf(score,4,"%04d0", nombre); ChoisirCouleurDessin(CouleurParNom("black")); RemplirRectangle(1100,700,1200,800); @@ -24,7 +17,7 @@ void Score(int segment){ EcrireTexte(1000,760,"Score: ",2); EcrireTexte(1100,760,score,2); } -void Update_Timer(){ +void Update_Timer(int minute, int seconde, char timer[]){ snprintf(timer,6,"%02d:%02d", minute, seconde); ChoisirCouleurDessin(CouleurParComposante(0,0,0)); RemplirRectangle(10,700,12000,800); @@ -32,21 +25,20 @@ void Update_Timer(){ EcrireTexte(50,760,"time: ",2); EcrireTexte(120,760,timer,2); } -void Timer(){ - if(Microsecondes()> suivant){ - suivant = Microsecondes()+CYCLE; - seconde_actuel = (suivant/1000000)%10; +void Timer(int *minute, int *seconde, unsigned long int *suivant, int *seconde_actuel, int *old_seconde, char timer[]){ + if(Microsecondes()> *suivant){ + *suivant = Microsecondes()+CYCLE; + *seconde_actuel = (*suivant/1000000)%10; if(seconde_actuel !=old_seconde){ - old_seconde = seconde_actuel; - if(seconde == 59){ - minute=minute+1; - seconde=0; - Update_Timer(); - }else;{ - seconde = seconde+1; - Update_Timer(); + *old_seconde = *seconde_actuel; + if(*seconde == 59){ + *minute=*minute+1; + *seconde=0; + Update_Timer(*minute, *seconde, timer); + }else{ + *seconde = *seconde+1; + Update_Timer(*minute, *seconde, timer); } } } -} - +} \ No newline at end of file