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

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

parents c4665386 ded6599b
No related branches found
No related tags found
No related merge requests found
......@@ -31,11 +31,11 @@ listchainfire_t insertAheadFire(fire_t fire,listchainfire_t listFire)
printf("problème d'allocation \n");
exit(1);
}
if (!searchFire(listFire,fire.x,fire.y)){
if ((!searchFire(listFire,fire.x,fire.y))&&(map[fire.x][fire.y]!=2)){
m->fire=fire;
m->next= listFire;
listFire=m;}
listFire=m;
}
return listFire;
}
......@@ -55,7 +55,6 @@ listchainfire_t startFire(listchainfire_t listFire,int numberFire, int mapSize){
xFire= rand()%mapSize;
yFire= rand()%mapSize;
//printf("xf:%d,yf:%d\n",xFire,yFire);
fire.x= xFire;
fire.y= yFire;
fire.state=1;
......@@ -135,7 +134,6 @@ void travelFire(listchainfire_t listFire){
//printf("x:%d,y:%d\n",(listTemporary->fire).x,(listTemporary->fire).y);
listTemporary=listTemporary->next;
}
//freeListFire(listTemporary);
}
void readFapFromFile(char * filename){
......@@ -185,9 +183,61 @@ void nextFire(listchainfire_t listFire){
else if ((pMedium<=probability)&&(probability<pStrong)){(listTemporary->fire).state=STRONG;}
else {(listTemporary->fire).state=SPREAD;}
//printf("%d %d\n", probability, state);
//printf("%d %d %d %d\n", pDead, pSparkle, pMedium, pStrong);
listTemporary=listTemporary->next;
}
}
listchainfire_t probabilitySpreadFire( listchainfire_t listFire, listchainfire_t listTemporary){
int probability;
fire_t fire;
probability= rand()%4;
if((probability==0)&&((listTemporary->fire).x+1<MAPSIZE)){fire.state=1;
fire.x=(listTemporary->fire).x+1;
fire.y=(listTemporary->fire).y;
listFire=insertAheadFire(fire,listFire);
}
if ((probability==1)&&((listTemporary->fire).y+1<MAPSIZE)){fire.state=1;
fire.x=(listTemporary->fire).x;
fire.y=(listTemporary->fire).y+1;
listFire=insertAheadFire(fire,listFire);
}
if ((probability==2)&&((listTemporary->fire).y-1>=0)){fire.state=1;
fire.x=(listTemporary->fire).x;
fire.y=(listTemporary->fire).y-1;
listFire=insertAheadFire(fire,listFire);
}
if ((probability==3)&&((listTemporary->fire).x-1>=0)){fire.state=1;
fire.x=(listTemporary->fire).x-1;
fire.y=(listTemporary->fire).y;
listFire=insertAheadFire(fire,listFire);
}
return listFire;
}
listchainfire_t spreadFire (listchainfire_t listFire){
listchainfire_t listTemporary=fireList;
srand(time(NULL));
while (!emptyListFire(listTemporary)){
if ((listTemporary->fire).state==4){
listFire=probabilitySpreadFire(listFire, listTemporary);
}
listTemporary=listTemporary->next;
}
return listFire;
}
booleen_t winGame(listchainfire_t listFire){
booleen_t win = true;
listchainfire_t listTemporary= listFire;
while (!emptyListFire( listTemporary)){
if ((listTemporary->fire).state!=0){
win= false;
break;
}
}
return win;
}
\ No newline at end of file
......@@ -13,7 +13,7 @@
#define STRONG 3
#define SPREAD 4
#define UPDATETIME 5
#define UPDATETIME 10
typedef struct fire{
......@@ -45,9 +45,12 @@ listchainfire_t deleteAheadFire(listchainfire_t);
listchainfire_t deleteFire (listchainfire_t, int ,int );
listchainfire_t freeListFire (listchainfire_t );
listchainfire_t offFire (listchainfire_t, int,int );
void travelFire(listchainfire_t listFire);
void travelFire(listchainfire_t );
void readFapFromFile(char * filename);
void nextFire(listchainfire_t );
listchainfire_t probabilitySpreadFire( listchainfire_t, listchainfire_t);
listchainfire_t spreadFire (listchainfire_t );
booleen_t winGame(listchainfire_t );
......
......@@ -10,9 +10,8 @@ int main(){
readMapFromFile("map.txt");
readFapFromFile("markov.txt");
fireList = startFire(fireList,10,MAPSIZE);
travelFire(fireList);
nextFire(fireList);
nextFire(fireList);
nextFire(fireList);
mainLoop();
}
\ No newline at end of file
......@@ -285,7 +285,8 @@ void drawTime(){
SDL_RenderCopy(renderer, scoreTexture, NULL, &rect);
rect.y += rect.h;
char str[10];
sprintf(str, "%d", UPDATETIME - (int)timer/1000 % UPDATETIME);
printf("%d\n", (UPDATETIME * 1000 - (int)timer % (UPDATETIME * 1000))/1000);
sprintf(str, "%d", (UPDATETIME * 1000 - (int)timer % (UPDATETIME * 1000))/1000);
SDL_Color textColor = {237,222,17};
SDL_Surface * surface = TTF_RenderText_Solid(robotoFont, str, textColor);
SDL_Texture * texture = SDL_CreateTextureFromSurface(renderer, surface);
......@@ -385,16 +386,16 @@ void mainLoop(){
delta = (a - b);
if (delta > 1000/FPS_TO_GET){
timer += delta;
//printf("timer : %f\n", timer/1000);
printf("%d\n", (int)timer % 1000);
b = a;
//printf("fps : %f", 1000/delta);
switch (gameState){
case MENU:
drawMenu();
break;
case GAME:
if ((int)timer/1000 % UPDATETIME == 0){
if ((int)timer % (UPDATETIME * 1000) < 10){
nextFire(fireList);
fireList=spreadFire(fireList);
}
drawGame();
break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment