From f19f8172ca55a7b9618bd53c833c1f8c0b6a1d72 Mon Sep 17 00:00:00 2001 From: flo Date: Wed, 1 Feb 2017 20:36:00 +0100 Subject: [PATCH] Mr propre --- include/voiture.h | 7 +- src/voiture.c | 245 ++++++++++++++++++++-------------------------- 2 files changed, 110 insertions(+), 142 deletions(-) diff --git a/include/voiture.h b/include/voiture.h index 48be71e..8dcaa0f 100644 --- a/include/voiture.h +++ b/include/voiture.h @@ -26,8 +26,13 @@ int Menu(void); int Jeu(void); - void init_obstacle(void); + void new_frame(void); + void generate_obstacle(char ID_corridor); + void mort(void); void garage(void); + int rand(int min, int max, int seed); + int recur(int seed); + #endif diff --git a/src/voiture.c b/src/voiture.c index ef1aade..c52c808 100644 --- a/src/voiture.c +++ b/src/voiture.c @@ -7,13 +7,12 @@ #include "clock.h" #include "timer.h" -#define mod(x,y) (x-y*(int)(x/y)) - Obstacles obstacle[4]; // struture Obstacle & attributs Voiture voiture; // structure Voiture & caracteristiques void init() { + voiture.corridor = 2; voiture.money = 0; voiture.essence = 100; @@ -22,65 +21,51 @@ voiture.life = 1; voiture.speed = 50; voiture.decal_x = 15; compteur = 0; -} - - -int rand(int min, int max, int seed) +for(int i = 0; i<4; i++) { - return ((seed%33)*(seed%3)+3)%(max-min) + min; + obstacle[i].coordx = -20; + obstacle[i].num_obst = 1; +} } void update_essence() { - voiture.essence -= 2; + voiture.essence -= 1; } -void new_frame() +int main(void) { -extern Image img_formel1; -extern Image img_obstacle; +short menu=0; -int i,j; +extern Image img_menu; -dclear(); - -dimage(voiture.decal_x, 11*voiture.corridor, &img_formel1); -dprint(1, 1, "%d", compteur); -//dprint(57, 1, "e : %d", voiture.essence); -dprint(1, 57, "%d", rand(0,101,compteur)); -dline(25, 58, 25+(voiture.essence/5), 58, Color_Black); -//dimage_part(1, 1, &img_obstacle, 10*7, 0, 10, 10); - - -if (voiture.essence == 0) - { - voiture.life = 0; - } - -if (voiture.life == 0) +while(1) { dclear(); - dtext(10,10,"Vous etes mort"); - dtext(10,20,"Appuyer sur une touche"); - dupdate(); - return; - } -// dessin des lignes -for(i=1;i<4;i++) - { - for(j=compteur%2;j<128;j+=4) + dimage(0, 0, &img_menu); + dreverse_area(62+16*menu,23+21*menu,108+16*menu,39+21*menu); + + dupdate(); + + key=getkey(); + + switch(key) { - dline(2*j, i*11+10, 2*j+3, i*11+10, Color_Black); + case KEY_UP : case KEY_DOWN : menu=!menu; break; + case KEY_EXE : + + switch(menu) + { + case 0 : Jeu(); break; + case 1 : /*garage();*/ break; + } + break; + + case KEY_EXIT : return 1; } } - -dline(1, 10, 128, 10, Color_Black); -dline(1, 54, 128, 54, Color_Black); - -dupdate(); -compteur++; } int Jeu() @@ -109,85 +94,101 @@ while(1) } } - -int main(void) +void new_frame() { -short menu=0; +extern Image img_formel1; +extern Image img_obstacle; -extern Image img_menu; +int i,j; -while(1) +dclear(); + +dimage(voiture.decal_x, 11*voiture.corridor, &img_formel1); +dprint(1, 1, "%d", compteur); +//dprint(57, 1, "e : %d", voiture.essence); +dprint(1, 57, "%d", rand(0,101,compteur)); + +//Jauge d'essence +dline(25+voiture.essence/5, 58, 45, 58, Color_Black); +dreverse_area(24, 57, 46, 59); + +//generation de chacun des obstacles +for(i=0; i<4; i++) +{ + if(obstacle[i].coordx < -10) + { + generate_obstacle(i); + } + + dimage_part(obstacle[i].coordx, 11*i+11, &img_obstacle, 10*obstacle[i].num_obst, 0, 10, 10); + obstacle[i].coordx--; +} + +if (voiture.essence == 0) + { + voiture.life = 0; + } + +if (voiture.life == 0) { dclear(); - - dimage(0, 0, &img_menu); - - dreverse_area(62+16*menu,23+21*menu,108+16*menu,39+21*menu); - + dtext(10,10,"Vous etes mort"); + dtext(1,20,"Appuyez sur une touche"); dupdate(); + return; + } - key=getkey(); - - switch(key) +// dessin des lignes +for(i=1;i<4;i++) + { + for(j=compteur%2;j<128;j+=4) { - case KEY_UP : case KEY_DOWN : menu=!menu; break; - case KEY_EXE : - - switch(menu) - { - case 0 : Jeu(); break; - case 1 : /*garage();*/ break; - } - break; - - case KEY_EXIT : return 1; + dline(2*j, i*11+10, 2*j+3, i*11+10, Color_Black); } } + +dline(1, 10, 128, 10, Color_Black); +dline(1, 54, 128, 54, Color_Black); + +dupdate(); +compteur++; + } -/*void garage(void) +void mort() { -unsigned char prix[5]={20,50,90,150,300}; -unsigned char choice[2]={0,0}; -int i; -char buffer[50]; -char choix=0; -int j,k; - -while(1) -{ -Bdisp_AllClr_DDVRAM(); - -ML_bmp_or(IMG_GARAGE, 0, 0, 128, 64); - - -for(i=0;i",0); - -sprintf(buffer,"argent %d prix %d" , 500, 500); -PrintMini(11,17,buffer,0); - -GetKey(&key); - -switch(key) +int rand(int min, int max, int seed) { -case KEY_CTRL_UP : case KEY_CTRL_DOWN : choix=(choix== 1 ? 0 : 1); break; -case KEY_CTRL_EXE : choice[choix]++; break; -case KEY_CTRL_EXIT : return ; + return ((++seed%2)*(--seed%50)+3)%(max-min) + min; } -} -}*/ /*int Jeu() { @@ -301,41 +302,3 @@ score=(i%4==0 ? score+2: score); } return 1; }*/ - -void mort() -{ - -dclear(); - -while(key!=KEY_NONE) - { - dtext(10,10,"Vous etes mort"); - dupdate(); - key = getkey(); - } - - return; -} - -void init_obstacle() -{ -int i=0,j=0; -char proba[10]={0,30,70,75,80,83,86,95,98,100}; - -while(j<9) - { - for(i=proba[j];i