
Time is good
Fork of Robot2016_2-0 by
Diff: Map/map.cpp
- Revision:
- 56:4fd9636dfb36
- Parent:
- 55:dfeee9e5c0af
- Child:
- 57:86f491f5b25d
--- a/Map/map.cpp Wed May 04 16:27:51 2016 +0000 +++ b/Map/map.cpp Wed May 04 19:43:53 2016 +0200 @@ -4,6 +4,11 @@ } void map::Build (int couleur, int formation) { + max_x_table = 2800; + max_y_table = 1800; + min_x_table = 0; + min_y_table = 0; + addObs(obsCarr (800, 100, 100, 15)); addObs(obsCarr (2200, 100, 100, 15)); @@ -83,17 +88,20 @@ ended = false; tmp = obs[i].getPoints (); + // On vérifie si le point est sur la table + if (tmp.p0.getX() < min_x_table || tmp.p0.getY() < min_y_table || tmp.p0.getX() > max_x_table || tmp.p0.getY() > max_y_table) + val[0] = false; // On vérifie si le point croise un obstacle - for (j = 0; j < os; ++j) + for (j = 0; j < os && val[0]; ++j) if (obs[j].getCroisement (tmp.p0, close[indTMP1])) val[0] = false; // On vérifie si le point existe déjà dans la liste ouverte - for (j = 0; j < open.size (); ++j) { + for (j = 0; j < open.size () && val[0]; ++j) { if (open[j] == tmp.p0) val[0] = false; } // On vérifie si le point existe déjà dans la liste fermée - for (j = 0; j < close.size (); ++j) { + for (j = 0; j < close.size () && val[0]; ++j) { if (close[j] == tmp.p0) val[0] = false; } @@ -102,14 +110,16 @@ } // On repete l'operation pour le second point - for (j = 0; j < os; ++j) + if (tmp.p1.getX() < min_x_table || tmp.p1.getY() < min_y_table || tmp.p1.getX() > max_x_table || tmp.p1.getY() > max_y_table) + val[1] = false; + for (j = 0; j < os && val[1]; ++j) if (obs[j].getCroisement (tmp.p1, close[indTMP1])) val[1] = false; - for (j = 0; j < open.size (); ++j) { + for (j = 0; j < open.size () && val[1]; ++j) { if (open[j] == tmp.p1) val[1] = false; } - for (j = 0; j < close.size (); ++j) { + for (j = 0; j < close.size () && val[1]; ++j) { if (close[j] == tmp.p1) val[1] = false; } @@ -118,14 +128,16 @@ } // On répète l'opération pour le troisième point - for (j = 0; j < os; ++j) + if (tmp.p2.getX() < min_x_table || tmp.p2.getY() < min_y_table || tmp.p2.getX() > max_x_table || tmp.p2.getY() > max_y_table) + val[2] = false; + for (j = 0; j < os && val[2]; ++j) if (obs[j].getCroisement (tmp.p2, close[indTMP1])) val[2] = false; - for (j = 0; j < open.size (); ++j) { + for (j = 0; j < open.size () && val[2]; ++j) { if (open[j] == tmp.p2) val[2] = false; } - for (j = 0; j < close.size (); ++j) { + for (j = 0; j < close.size () && val[2]; ++j) { if (close[j] == tmp.p2) val[2] = false; } @@ -134,14 +146,16 @@ } // On répète l'opération pour le quatrieme point - for (j = 0; j < os; ++j) + if (tmp.p3.getX() < min_x_table || tmp.p3.getY() < min_y_table || tmp.p3.getX() > max_x_table || tmp.p3.getY() > max_y_table) + val[3] = false; + for (j = 0; j < os && val[3]; ++j) if (obs[j].getCroisement (tmp.p3, close[indTMP1])) val[3] = false; - for (j = 0; j < open.size (); ++j) { + for (j = 0; j < open.size () && val[3]; ++j) { if (open[j] == tmp.p3) val[3] = false; } - for (j = 0; j < close.size (); ++j) { + for (j = 0; j < close.size () && val[3]; ++j) { if (close[j] == tmp.p3) val[3] = false; }