diff --git a/travail_de_groupe/chef_oeuvre/src/fire.c b/travail_de_groupe/chef_oeuvre/src/fire.c index 4542e2c9358d0d1baf63301c6149ee7c5c86566e..3b0254d7b788b80e6c2885d08bce96f176df17af 100644 --- a/travail_de_groupe/chef_oeuvre/src/fire.c +++ b/travail_de_groupe/chef_oeuvre/src/fire.c @@ -216,8 +216,19 @@ listchainfire_t probabilitySpreadFire( listchainfire_t listFire, listchainfire_t return listFire; } +void burnTree (listchainfire_t listFire){ + listchainfire_t listTemporary = listFire; + + while (!emptyListFire(listTemporary)){ + if (map[(listTemporary->fire).y][(listTemporary->fire).x]==TREE){map[(listTemporary->fire).y][(listTemporary->fire).x]=0;} + } +} + listchainfire_t spreadFire (listchainfire_t listFire){ listchainfire_t listTemporary=fireList; + + //burnTree(listFire); + srand(time(NULL)); while (!emptyListFire(listTemporary)){ if ((listTemporary->fire).state==4){ @@ -231,13 +242,8 @@ listchainfire_t spreadFire (listchainfire_t listFire){ booleen_t winGame(listchainfire_t listFire){ booleen_t win = true; - listchainfire_t listTemporary= listFire; + + if(!emptyListFire(listFire)){win=false;} - while (!emptyListFire( listTemporary)){ - if ((listTemporary->fire).state!=0){ - win= false; - break; - } - } return win; } \ No newline at end of file diff --git a/travail_de_groupe/chef_oeuvre/src/fire.h b/travail_de_groupe/chef_oeuvre/src/fire.h index 0284cedffa35689e462c662c6493532d8e1dd92b..9d4b7d7593944768126abb5ca0bbc480575ab4b9 100644 --- a/travail_de_groupe/chef_oeuvre/src/fire.h +++ b/travail_de_groupe/chef_oeuvre/src/fire.h @@ -51,6 +51,7 @@ void nextFire(listchainfire_t ); listchainfire_t probabilitySpreadFire( listchainfire_t, listchainfire_t); listchainfire_t spreadFire (listchainfire_t ); booleen_t winGame(listchainfire_t ); +void burnTree (listchainfire_t listFire); diff --git a/travail_de_groupe/chef_oeuvre/src/gest_event.c b/travail_de_groupe/chef_oeuvre/src/gest_event.c index cfaf1e2cc7323edc1ec1539138139c8c0f80aa61..70e952afee255ab3768dd98432d1ea1e341397b2 100644 --- a/travail_de_groupe/chef_oeuvre/src/gest_event.c +++ b/travail_de_groupe/chef_oeuvre/src/gest_event.c @@ -203,6 +203,7 @@ void manageGame(){ } } updatePlayer(); + //burnTree(fireList); SDL_Delay(5); } diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c index ad055c9aa9e5a15d8e477a2d4d14a08092bdf65f..1e225c457ee5e1725fc9930fbf31253598da41cf 100644 --- a/travail_de_groupe/chef_oeuvre/src/render.c +++ b/travail_de_groupe/chef_oeuvre/src/render.c @@ -1,6 +1,7 @@ #include "render.h" float timer = 0; +int fps; SDL_Window *window; SDL_Renderer *renderer; @@ -326,6 +327,21 @@ void drawTime(){ SDL_RenderCopy(renderer, texture, NULL, &rect); } +void drawFPS(){ + SDL_Rect rect; + rect.h = screenDimension.h/12; + rect.w = screenDimension.w/12; + rect.x = (screenDimension.w + (MAPSIZE * CELLSIZE)) / 2; + rect.y = screenDimension.h - rect.h; + + char str[10]; + sprintf(str, "%d", fps); + SDL_Color textColor = {237,222,17}; + SDL_Surface * surface = TTF_RenderText_Solid(robotoFont, str, textColor); + SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer, surface); + SDL_RenderCopy(renderer, texture, NULL, &rect); +} + void drawGame(){ SDL_RenderClear(renderer); drawBackgroundSides(); @@ -336,6 +352,7 @@ void drawGame(){ drawPlayerHP(); drawScore(); drawTime(); + drawFPS(); SDL_RenderPresent(renderer); } @@ -351,6 +368,18 @@ void drawLost(){ SDL_RenderCopy(renderer, quitButtonHoverTexture, NULL, &rect); SDL_RenderCopy(renderer, playAgainButtonHoverTexture, NULL, &rect); SDL_RenderPresent(renderer); + + // draw score + rect.h = screenDimension.h/12; + rect.w = rect.h; + rect.x = screenDimension.w/2; + rect.y = screenDimension.h/2 - rect.h; + char str[10]; + sprintf(str, "%d", player.score); + SDL_Color textColor = {237,222,17}; + SDL_Surface * surface = TTF_RenderText_Solid(robotoFont, str, textColor); + SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer, surface); + SDL_RenderCopy(renderer, texture, NULL, &rect); } void mainLoop(){ @@ -470,6 +499,7 @@ void mainLoop(){ a = SDL_GetTicks(); delta = (a - b); if (delta > 1000/FPS_TO_GET){ + fps = 1000/delta; timer += delta; printf("%d\n", (int)timer % 1000); b = a;