Skip to content
Snippets Groups Projects
Commit 8b2d6287 authored by Montjoie Henri's avatar Montjoie Henri
Browse files

optimisation : la fonction deplacement_unitaire_possible n'est pluas appelee...

optimisation : la fonction deplacement_unitaire_possible n'est pluas appelee que 900 000 fois et non 655 millions
parent bf7a427d
No related branches found
No related tags found
No related merge requests found
...@@ -113,9 +113,10 @@ boolean deplacement_unitaire_possible(Case* depart,Case* destination){ ...@@ -113,9 +113,10 @@ boolean deplacement_unitaire_possible(Case* depart,Case* destination){
boolean deplacement_possible(Personnage* perso, Case* c, Carte_Jeu* carte){ boolean deplacement_possible(Personnage* perso, Case* c, Carte_Jeu* carte){
int pts_mvt = perso->points_deplacement; int pts_mvt = perso->points_deplacement;
Case* depart=perso->position; Case* depart=perso->position;
if(depart->coord_x>c->coord_x+pts_mvt||depart->coord_x<c->coord_x-pts_mvt||depart->coord_y>c->coord_y+pts_mvt||depart->coord_y<c->coord_y-pts_mvt) return faux;
int x,y; int x,y;
for(x=0;x<LARG_MAX_CARTE;x++){ for(x=depart->coord_x-pts_mvt;x<LARG_MAX_CARTE&&x<=depart->coord_x+pts_mvt;x++){
for(y=0;y<HAUT_MAX_CARTE;y++){ for(y=depart->coord_y-pts_mvt;y<HAUT_MAX_CARTE&&y<=depart->coord_y+pts_mvt;y++){
if(deplacement_unitaire_possible(depart,&carte->Tab_Cases[x][y])==vrai){ if(deplacement_unitaire_possible(depart,&carte->Tab_Cases[x][y])==vrai){
if(deplacement_possible_recursif(&carte->Tab_Cases[x][y],c, carte,pts_mvt-carte->Tab_Cases[x][y].terrain->PD_requis)==vrai){ if(deplacement_possible_recursif(&carte->Tab_Cases[x][y],c, carte,pts_mvt-carte->Tab_Cases[x][y].terrain->PD_requis)==vrai){
return vrai; return vrai;
...@@ -137,8 +138,8 @@ boolean deplacement_possible_recursif(Case* dep, Case* dest, Carte_Jeu* carte, i ...@@ -137,8 +138,8 @@ boolean deplacement_possible_recursif(Case* dep, Case* dest, Carte_Jeu* carte, i
int x,y; int x,y;
if(dep==dest) return vrai; if(dep==dest) return vrai;
if(pts_restants<1) return faux; if(pts_restants<1) return faux;
for(x=0;x<LARG_MAX_CARTE;x++){ for(x=dep->coord_x-pts_restants;x<LARG_MAX_CARTE&&x<=dep->coord_x+pts_restants;x++){
for(y=0;y<HAUT_MAX_CARTE;y++){ for(y=dep->coord_y-pts_restants;y<HAUT_MAX_CARTE&&y<=dep->coord_y+pts_restants;y++){
if(deplacement_unitaire_possible(dep,&carte->Tab_Cases[x][y])==vrai){ if(deplacement_unitaire_possible(dep,&carte->Tab_Cases[x][y])==vrai){
if(deplacement_possible_recursif(&carte->Tab_Cases[x][y],dest, carte,pts_restants-carte->Tab_Cases[x][y].terrain->PD_requis)==vrai){ if(deplacement_possible_recursif(&carte->Tab_Cases[x][y],dest, carte,pts_restants-carte->Tab_Cases[x][y].terrain->PD_requis)==vrai){
return vrai; return vrai;
......
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