diff --git a/.gitignore b/.gitignore index 527e202a8bdab19e53364f5b71164202752e2635..f42a7a25a82ef0c5c6854f39348ae72acc178e2f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +run + # Prerequisites *.d diff --git a/travail_de_groupe/chef_oeuvre/markov.txt b/travail_de_groupe/chef_oeuvre/markov.txt new file mode 100644 index 0000000000000000000000000000000000000000..dd3380684e771c77605b4c1344704b94bb324981 --- /dev/null +++ b/travail_de_groupe/chef_oeuvre/markov.txt @@ -0,0 +1,4 @@ +1 0 0 0 +0 1 0 0 +0 0 1 0 +0 0 0 1 \ No newline at end of file diff --git a/travail_de_groupe/chef_oeuvre/src/fire.c b/travail_de_groupe/chef_oeuvre/src/fire.c index 2c7d77a66d103743c94d577d0dcaec84bafcc56b..3a8f4b4dfd5bb58a8f8936e11866b0c3da940a0b 100644 --- a/travail_de_groupe/chef_oeuvre/src/fire.c +++ b/travail_de_groupe/chef_oeuvre/src/fire.c @@ -1,4 +1,7 @@ #include "fire.h" +#include "map.h" + +int markov[SIZEMARKOV][SIZEMARKOV]; listchainfire_t initFire (void) { @@ -108,3 +111,17 @@ listchainfire_t freeListFire (listchainfire_t listFire){ } return listFire; } + +listchainfire_t offFire (listchainfire_t listFire, int x ,int y ){ + + if (emptyListFire(listFire)){ + return(listFire); + } + if(((listFire->fire).x==x)&&((listFire->fire).y==y)) { + (listFire->fire).state=0; // feu eteint + } + else{ + listFire->next=offFire(listFire->next,x,y); + } + return listFire; +} diff --git a/travail_de_groupe/chef_oeuvre/src/fire.h b/travail_de_groupe/chef_oeuvre/src/fire.h index 1e9ef245648a925b9ea128186a129706d789eadd..ce6b5a81f1145aaf7de6eb428a6b40703e923603 100644 --- a/travail_de_groupe/chef_oeuvre/src/fire.h +++ b/travail_de_groupe/chef_oeuvre/src/fire.h @@ -6,6 +6,8 @@ #include <time.h> #include <stdio.h> +#define SIZEMARKOV 4 + typedef struct fire{ int x; @@ -33,5 +35,6 @@ booleen_t searchFire(listchainfire_t, int ,int); listchainfire_t deleteAheadFire(listchainfire_t); listchainfire_t deleteFire (listchainfire_t, int ,int ); listchainfire_t freeListFire (listchainfire_t ); +listchainfire_t offFire (listchainfire_t, int,int ); #endif \ No newline at end of file diff --git a/travail_de_groupe/chef_oeuvre/src/player.c b/travail_de_groupe/chef_oeuvre/src/player.c index 92e4f572490653856233d111a7ee48c3781139b5..09106266f5eab936922d592ba96df555976809bd 100644 --- a/travail_de_groupe/chef_oeuvre/src/player.c +++ b/travail_de_groupe/chef_oeuvre/src/player.c @@ -126,9 +126,8 @@ void manageMovement(){ int selectStateHover(){ int stateHover = 0; - int distance = sqrt(pow(abs(mousePosition.x-player.x), 2)+pow(abs(mousePosition.y-player.y), 2)); - printf("distance : %d\n", distance); - if(distance <= 2){ + int distance = sqrt(pow(abs(mousePosition.x - ((player.x+player.w/2))/CELLSIZE), 2)+pow(abs(mousePosition.y - ((player.y+player.h/2))/CELLSIZE), 2)); + if(distance <= 1){ stateHover = 1; } return stateHover; diff --git a/travail_de_groupe/chef_oeuvre/src/render.c b/travail_de_groupe/chef_oeuvre/src/render.c index 0f1adc2be3369f5aa754b479c86a055ec4616a96..21fafd8e148ecbc4a7726d1c5f6da3afc13a3f31 100644 --- a/travail_de_groupe/chef_oeuvre/src/render.c +++ b/travail_de_groupe/chef_oeuvre/src/render.c @@ -17,6 +17,9 @@ SDL_Texture * treeTexture; SDL_Surface * hoverSurface; SDL_Texture * hoverTexture; +SDL_Surface * noHoverSurface; +SDL_Texture * noHoverTexture; + SDL_Surface * playerSurface; SDL_Texture * playerTexture; @@ -109,7 +112,12 @@ void drawMap(){ SDL_RenderCopy(renderer, treeTexture, NULL, &rect); } if (mousePosition.x == j && mousePosition.y == i){ - SDL_RenderCopy(renderer, hoverTexture, NULL, &rect); + if (selectStateHover()){ + SDL_RenderCopy(renderer, hoverTexture, NULL, &rect); + } + else { + SDL_RenderCopy(renderer, noHoverTexture, NULL, &rect); + } } rect.x += CELLSIZE; } @@ -154,6 +162,9 @@ void mainLoop(){ hoverSurface = IMG_Load("Res/hover.png"); hoverTexture = SDL_CreateTextureFromSurface(renderer, hoverSurface); + noHoverSurface = IMG_Load("Res/noHover.png"); + noHoverTexture = SDL_CreateTextureFromSurface(renderer, noHoverSurface); + playerSurface = IMG_Load("Res/character_spritesheet.png"); playerTexture = SDL_CreateTextureFromSurface(renderer, playerSurface); @@ -177,6 +188,7 @@ void mainLoop(){ SDL_FreeSurface(playButtonSurface); SDL_FreeSurface(playButtonHoverSurface); SDL_FreeSurface(backgroundSidesSurface); + SDL_FreeSurface(noHoverSurface); unsigned int a = SDL_GetTicks(); unsigned int b = SDL_GetTicks();