Skip to content
Snippets Groups Projects
Commit ce876428 authored by antoinemeyer5's avatar antoinemeyer5
Browse files

Merge branch 'main' of github.com:maberet/ProjetZZ1 into main

parents c07056fd c8591fe5
No related branches found
No related tags found
No related merge requests found
...@@ -74,11 +74,11 @@ booleen_t searchFire(listchainfire_t listFire, int x ,int y) ...@@ -74,11 +74,11 @@ booleen_t searchFire(listchainfire_t listFire, int x ,int y)
while((listFire!=NULL)&&!(result)) while((listFire!=NULL)&&!(result))
{ {
if(((listFire->fire).x==x)&&((listFire->fire).y==y)) // si on trouve la semaine voulue if(((listFire->fire).x==x)&&((listFire->fire).y==y))
{ {
result= true ;// on chercher si on trouve l'action ou non. result= true ;
} }
listFire=listFire->next; // on passe au suivant. listFire=listFire->next;
} }
return result; return result;
} }
...@@ -87,9 +87,9 @@ listchainfire_t deleteAheadFire(listchainfire_t listFire){ ...@@ -87,9 +87,9 @@ listchainfire_t deleteAheadFire(listchainfire_t listFire){
listchainfire_t listTemporary; listchainfire_t listTemporary;
listTemporary = listFire; // recuperation de la semaine en tête de liste listTemporary = listFire;
listFire = listFire->next; // on avance la liste sur le maillon suivant listFire = listFire->next;
free(listTemporary); // on libere le maillon en tete free(listTemporary);
return listFire; return listFire;
} }
...@@ -120,7 +120,7 @@ listchainfire_t offFire (listchainfire_t listFire, int x ,int y ){ ...@@ -120,7 +120,7 @@ listchainfire_t offFire (listchainfire_t listFire, int x ,int y ){
return(listFire); return(listFire);
} }
if(((listFire->fire).x==x)&&((listFire->fire).y==y)) { if(((listFire->fire).x==x)&&((listFire->fire).y==y)) {
(listFire->fire).state=0; // feu eteint (listFire->fire).state=(listFire->fire).state-1;
} }
else{ else{
listFire->next=offFire(listFire->next,x,y); listFire->next=offFire(listFire->next,x,y);
...@@ -137,3 +137,54 @@ void travelFire(listchainfire_t listFire){ ...@@ -137,3 +137,54 @@ void travelFire(listchainfire_t listFire){
} }
//freeListFire(listTemporary); //freeListFire(listTemporary);
} }
void readFapFromFile(char * filename){
FILE * fp;
int i, j;
fp = fopen(filename, "r");
if(fp == NULL){
printf("Error opening file\n");
exit(1);
}
for(i = 0; i < SIZEMARKOV; i++){
for(j = 0; j < SIZEMARKOV; j++){
fscanf(fp, "%d", &markov[i][j]);
}
}
fclose(fp);
}
void nextFire(listchainfire_t listFire){
int probability;
int state;
int pDead;
int pSparkle;
int pMedium;
int pStrong;
listchainfire_t listTemporary;
listTemporary= listFire;
srand(time(NULL));
while (!emptyListFire(listTemporary)){
state=(listTemporary->fire).state;
probability= rand()%101;
pDead=markov[state][DEAD]*100;
pSparkle=(markov[state][SPARKLE]+markov[state][DEAD])*100;
pMedium=(markov[state][SPARKLE]+markov[state][DEAD]+markov[state][MEDIUM])*100;
pStrong=(markov[state][SPARKLE]+markov[state][DEAD]+
markov[state][MEDIUM]+markov[state][STRONG])*100;
if ((0<=probability)&&(probability<pDead)){(listTemporary->fire).state=DEAD;}
else if ((pDead<=probability)&&(probability<pSparkle)){(listTemporary->fire).state=SPARKLE;}
else if ((pSparkle<=probability)&&(probability<pMedium)){(listTemporary->fire).state=MEDIUM;}
else if ((pMedium<=probability)&&(probability<pStrong)){(listTemporary->fire).state=STRONG;}
else {(listTemporary->fire).state=SPREAD;}
listTemporary=listTemporary->next;
}
}
\ No newline at end of file
...@@ -7,12 +7,18 @@ ...@@ -7,12 +7,18 @@
#include <stdio.h> #include <stdio.h>
#define SIZEMARKOV 4 #define SIZEMARKOV 4
#define DEAD 0
#define SPARKLE 1
#define MEDIUM 2
#define STRONG 3
#define SPREAD 4
typedef struct fire{ typedef struct fire{
int x; int x;
int y; int y;
int state; // { dead 0 ;sarkle 1 ; medium_fire 2 ; strong_fire 3} int state; // { dead 0 ;sarkle 1 ; medium_fire 2 ; strong_fire 3; preading 4}
}fire_t; }fire_t;
...@@ -39,5 +45,8 @@ listchainfire_t deleteFire (listchainfire_t, int ,int ); ...@@ -39,5 +45,8 @@ listchainfire_t deleteFire (listchainfire_t, int ,int );
listchainfire_t freeListFire (listchainfire_t ); listchainfire_t freeListFire (listchainfire_t );
listchainfire_t offFire (listchainfire_t, int,int ); listchainfire_t offFire (listchainfire_t, int,int );
void travelFire(listchainfire_t listFire); void travelFire(listchainfire_t listFire);
void readFapFromFile(char * filename);
void nextFire(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