Skip to content
Snippets Groups Projects
Commit 7b697905 authored by maberet's avatar maberet
Browse files

Merge branch 'fire' into main

parents 59ed0918 1bb2bb58
No related branches found
No related tags found
No related merge requests found
...@@ -17,3 +17,94 @@ booleen_t emptyListFire(listchainfire_t listFire) ...@@ -17,3 +17,94 @@ booleen_t emptyListFire(listchainfire_t listFire)
return (result); return (result);
} }
listchainfire_t insertAheadFire(fire_t fire,listchainfire_t listFire)
{
chainfire_t *m;
m=(chainfire_t*)malloc(sizeof(chainfire_t));
if (m==NULL)
{
printf("problème d'allocation \n");
exit(1);
}
if (!searchFire(listFire,fire.x,fire.y)){
m->fire=fire;
m->next= listFire;
listFire=m;}
return listFire;
}
listchainfire_t startFire(listchainfire_t listFire,int numberFire, int mapSize){
int i;
int xFire=0;
int yFire=0;
fire_t fire;
if (emptyListFire(listFire)){
for (i=0;i<numberFire;i++){
srand(time(NULL));
xFire= rand()%mapSize;
srand(time(NULL));
xFire= rand()%mapSize;
fire.x= xFire;
fire.y= yFire;
fire.state=1;
listFire=insertAheadFire(fire, listFire);
}
}
return (listFire);
}
booleen_t searchFire(listchainfire_t listFire, int x ,int y)
{
booleen_t result = false;
while((listFire!=NULL)||!(result))
{
if(((listFire->fire).x==x)&&((listFire->fire).y==y)) // si on trouve la semaine voulue
{
result= true ;// on chercher si on trouve l'action ou non.
}
listFire=listFire->next; // on passe au suivant.
}
return result;
}
listchainfire_t deleteAheadFire(listchainfire_t listFire){
listchainfire_t listTemporary;
listTemporary = listFire; // recuperation de la semaine en tête de liste
listFire = listFire->next; // on avance la liste sur le maillon suivant
free(listTemporary); // on libere le maillon en tete
return listFire;
}
listchainfire_t deleteFire (listchainfire_t listFire, int x ,int y ){
if (emptyListFire(listFire)){
return(listFire);
}
if(((listFire->fire).x==x)&&((listFire->fire).y==y)) {
listFire= deleteAheadFire( listFire);
}
else{
listFire->next=deleteFire(listFire->next,x,y);
}
return listFire;
}
listchainfire_t freeListFire (listchainfire_t listFire){
while (emptyListFire(listFire)){
listFire=deleteAheadFire(listFire);
}
return listFire;
}
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
#include "main.h" #include "main.h"
#include "gest_event.h" #include "gest_event.h"
#include <time.h>
#include <stdio.h>
typedef struct fire{ typedef struct fire{
int x; int x;
...@@ -23,9 +26,12 @@ typedef struct chain { ...@@ -23,9 +26,12 @@ typedef struct chain {
}chainfire_t,*listchainfire_t; }chainfire_t,*listchainfire_t;
listchainfire_t initFire(void); listchainfire_t initFire(void);
listchainfire_t insertAheadFire(fire_t, listchainfire_t);
booleen_t emptyListFire(listchainfire_t); booleen_t emptyListFire(listchainfire_t);
listchainfire_t insertAheadFire(fire_t, listchainfire_t);
listchainfire_t startFire(listchainfire_t ,int , int );
booleen_t searchFire(listchainfire_t, int ,int);
listchainfire_t deleteAheadFire(listchainfire_t);
listchainfire_t deleteFire (listchainfire_t, int ,int );
listchainfire_t freeListFire (listchainfire_t );
#endif #endif
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment