Skip to content
Snippets Groups Projects
Commit 98d90407 authored by maberet's avatar maberet
Browse files

Ajout de la propagation des flammes

parent ef5f4388
No related branches found
No related tags found
No related merge requests found
......@@ -190,4 +190,51 @@ void nextFire(listchainfire_t listFire){
listTemporary=listTemporary->next;
}
}
\ No newline at end of file
}
listchainfire_t probabilitySpreadFire( listchainfire_t listFire, listchainfire_t listTemporary){
int probability;
fire_t fire;
probability= rand()%4;
printf("proba:%d\n", probability);
printf("listfire1: x%d,y%d\n",(listFire->fire).x,(listFire->fire).y);
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);
}
printf("listtemp1: x%d,y%d\n",(listTemporary->fire).x,(listTemporary->fire).y);
printf("listfire2: x%d,y%d\n",(listFire->fire).x,(listFire->fire).y);
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);
printf("listfire ajout: x%d,y%d\n",(listFire->fire).x,(listFire->fire).y);
}
listTemporary=listTemporary->next;
}
return listFire;
}
\ No newline at end of file
......@@ -44,9 +44,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 );
......
......@@ -358,6 +358,8 @@ void mainLoop(){
case GAME:
if ((int)timer % 20 == 0){
nextFire(fireList);
fireList=spreadFire(fireList);
printf("after spread fire : x%d,y%d\n",(fireList->fire).x,(fireList->fire).y);
}
drawGame();
break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment