![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
coucou
Fork of Robot2016_2-0 by
Map/map.cpp@76:cd8c7da76768, 2016-05-05 (annotated)
- Committer:
- IceTeam
- Date:
- Thu May 05 08:46:03 2016 +0000
- Revision:
- 76:cd8c7da76768
- Parent:
- 75:195dd2bb13a3
test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
IceTeam | 46:be4eebf40568 | 1 | #include "map.h" |
IceTeam | 46:be4eebf40568 | 2 | |
IceTeam | 57:86f491f5b25d | 3 | /* Dernier Changement : Romain 20h30 */ |
IceTeam | 57:86f491f5b25d | 4 | |
IceTeam | 64:24e1057a97f7 | 5 | void map::Build_Objectives() { |
IceTeam | 69:1b257fb65281 | 6 | if (objectifs.empty()) { |
IceTeam | 69:1b257fb65281 | 7 | logger.printf("map::Build_Objectives Creation des Objectifs ...\n\r"); |
IceTeam | 69:1b257fb65281 | 8 | if (couleur == VERT) { |
IceTeam | 75:195dd2bb13a3 | 9 | addObj (objectif (OBJ_BLOC_PRISE, 120, 1000, 0, Codo, Parasol, pince)); |
IceTeam | 75:195dd2bb13a3 | 10 | addObj (objectif (OBJ_BLOC_LACHE, 120, 1000, 0, Codo, Parasol, pince, 50)); |
IceTeam | 69:1b257fb65281 | 11 | } |
IceTeam | 69:1b257fb65281 | 12 | else { |
IceTeam | 75:195dd2bb13a3 | 13 | addObj (objectif (OBJ_BLOC_PRISE, 3000-350, 850, 0, Codo, Parasol, pince)); |
IceTeam | 75:195dd2bb13a3 | 14 | addObj (objectif (RIEN, 3000-550, 850, 0, Codo, Parasol, pince)); |
IceTeam | 75:195dd2bb13a3 | 15 | addObj (objectif (OBJ_BLOC_LACHE, 3000-1050, 1100, 0, Codo, Parasol, pince)); |
IceTeam | 75:195dd2bb13a3 | 16 | addObj (objectif (RIEN, 3000-200, 850, 0, Codo, Parasol, pince)); |
IceTeam | 69:1b257fb65281 | 17 | } |
IceTeam | 64:24e1057a97f7 | 18 | } |
IceTeam | 64:24e1057a97f7 | 19 | } |
IceTeam | 64:24e1057a97f7 | 20 | |
IceTeam | 66:47353c8122de | 21 | map::map (Odometry* nodo, AX12 * np, ControlleurPince * npince, int ncouleur, int nformation) : Codo(nodo), Parasol(np), pince(npince) { |
IceTeam | 64:24e1057a97f7 | 22 | couleur = ncouleur; |
IceTeam | 64:24e1057a97f7 | 23 | formation = nformation; |
IceTeam | 64:24e1057a97f7 | 24 | |
IceTeam | 64:24e1057a97f7 | 25 | if (couleur == VERT) { |
IceTeam | 64:24e1057a97f7 | 26 | Codo->setPos(X_START_VERT, Y_START, 0); |
IceTeam | 64:24e1057a97f7 | 27 | } |
IceTeam | 64:24e1057a97f7 | 28 | else { |
IceTeam | 76:cd8c7da76768 | 29 | Codo->setPos(X_START_VIOLET, Y_START, -PI); |
IceTeam | 64:24e1057a97f7 | 30 | } |
IceTeam | 69:1b257fb65281 | 31 | Build(); |
IceTeam | 69:1b257fb65281 | 32 | Build_Objectives(); |
IceTeam | 46:be4eebf40568 | 33 | } |
IceTeam | 46:be4eebf40568 | 34 | |
IceTeam | 46:be4eebf40568 | 35 | void map::addObs (obsCarr nobs) { |
IceTeam | 46:be4eebf40568 | 36 | obs.push_back (nobs); |
IceTeam | 46:be4eebf40568 | 37 | } |
IceTeam | 60:8d2320a54a32 | 38 | void map::addObj (objectif nobj) { |
IceTeam | 60:8d2320a54a32 | 39 | objectifs.push_back(nobj); |
IceTeam | 60:8d2320a54a32 | 40 | } |
IceTeam | 46:be4eebf40568 | 41 | |
IceTeam | 46:be4eebf40568 | 42 | void map::FindWay (float depX, float depY, float arrX, float arrY) { |
IceTeam | 46:be4eebf40568 | 43 | point depart(depX, depY); |
IceTeam | 46:be4eebf40568 | 44 | point arrivee(arrX, arrY); |
IceTeam | 46:be4eebf40568 | 45 | FindWay(depart, arrivee); |
IceTeam | 46:be4eebf40568 | 46 | } |
IceTeam | 46:be4eebf40568 | 47 | |
IceTeam | 46:be4eebf40568 | 48 | void map::FindWay (point dep, point arr) { |
IceTeam | 46:be4eebf40568 | 49 | //logger.printf("On a cherche un chemin\n\r"); |
IceTeam | 46:be4eebf40568 | 50 | nVector<pointParcours> open; |
IceTeam | 46:be4eebf40568 | 51 | nVector<pointParcours> close; |
IceTeam | 46:be4eebf40568 | 52 | points4 tmp; |
IceTeam | 46:be4eebf40568 | 53 | bool val[4] = {true,true,true,true}; |
IceTeam | 46:be4eebf40568 | 54 | int os = obs.size (); |
IceTeam | 46:be4eebf40568 | 55 | int i, j; |
IceTeam | 46:be4eebf40568 | 56 | bool ended=false; // On teste tous les points ajoutes dans l'open list pour savoir s'il y a intersection avec un obstacle. Ended passe à true quand aucun ne coupe un obstacle. |
IceTeam | 46:be4eebf40568 | 57 | endedParc = false; |
IceTeam | 46:be4eebf40568 | 58 | |
IceTeam | 46:be4eebf40568 | 59 | path.clear(); |
IceTeam | 46:be4eebf40568 | 60 | |
IceTeam | 46:be4eebf40568 | 61 | pointParcours depP (dep, NULL, arr); |
IceTeam | 46:be4eebf40568 | 62 | int indTMP1=0; // Le point actuel |
IceTeam | 46:be4eebf40568 | 63 | open.push_back (depP); |
IceTeam | 46:be4eebf40568 | 64 | |
IceTeam | 46:be4eebf40568 | 65 | while (!ended && !open.empty ()) { |
IceTeam | 46:be4eebf40568 | 66 | for (i = 0; i < open.size (); ++i) { |
IceTeam | 46:be4eebf40568 | 67 | if (open[i].getP2 () < open[indTMP1].getP2 ()) |
IceTeam | 46:be4eebf40568 | 68 | indTMP1 = i; |
IceTeam | 46:be4eebf40568 | 69 | } |
IceTeam | 46:be4eebf40568 | 70 | |
IceTeam | 46:be4eebf40568 | 71 | close.push_first (open[indTMP1]); |
IceTeam | 46:be4eebf40568 | 72 | open.erase (indTMP1); |
IceTeam | 46:be4eebf40568 | 73 | indTMP1 = 0; |
IceTeam | 46:be4eebf40568 | 74 | |
IceTeam | 46:be4eebf40568 | 75 | ended = true; |
IceTeam | 46:be4eebf40568 | 76 | for (i = 0; i < os; ++i) { |
IceTeam | 46:be4eebf40568 | 77 | if (obs[i].getCroisement (close[indTMP1].getX (), close[indTMP1].getY (), arr)) { |
IceTeam | 46:be4eebf40568 | 78 | ended = false; |
IceTeam | 46:be4eebf40568 | 79 | tmp = obs[i].getPoints (); |
IceTeam | 46:be4eebf40568 | 80 | |
IceTeam | 56:4fd9636dfb36 | 81 | // On vérifie si le point est sur la table |
IceTeam | 56:4fd9636dfb36 | 82 | 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) |
IceTeam | 56:4fd9636dfb36 | 83 | val[0] = false; |
IceTeam | 46:be4eebf40568 | 84 | // On vérifie si le point croise un obstacle |
IceTeam | 56:4fd9636dfb36 | 85 | for (j = 0; j < os && val[0]; ++j) |
IceTeam | 46:be4eebf40568 | 86 | if (obs[j].getCroisement (tmp.p0, close[indTMP1])) |
IceTeam | 46:be4eebf40568 | 87 | val[0] = false; |
IceTeam | 46:be4eebf40568 | 88 | // On vérifie si le point existe déjà dans la liste ouverte |
IceTeam | 56:4fd9636dfb36 | 89 | for (j = 0; j < open.size () && val[0]; ++j) { |
IceTeam | 46:be4eebf40568 | 90 | if (open[j] == tmp.p0) |
IceTeam | 46:be4eebf40568 | 91 | val[0] = false; |
IceTeam | 46:be4eebf40568 | 92 | } |
IceTeam | 46:be4eebf40568 | 93 | // On vérifie si le point existe déjà dans la liste fermée |
IceTeam | 56:4fd9636dfb36 | 94 | for (j = 0; j < close.size () && val[0]; ++j) { |
IceTeam | 46:be4eebf40568 | 95 | if (close[j] == tmp.p0) |
IceTeam | 46:be4eebf40568 | 96 | val[0] = false; |
IceTeam | 46:be4eebf40568 | 97 | } |
IceTeam | 46:be4eebf40568 | 98 | if (val[0]) { |
IceTeam | 46:be4eebf40568 | 99 | open.push_back (pointParcours (tmp.p0, &close[indTMP1], arr)); |
IceTeam | 46:be4eebf40568 | 100 | } |
IceTeam | 46:be4eebf40568 | 101 | |
IceTeam | 46:be4eebf40568 | 102 | // On repete l'operation pour le second point |
IceTeam | 56:4fd9636dfb36 | 103 | 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) |
IceTeam | 56:4fd9636dfb36 | 104 | val[1] = false; |
IceTeam | 56:4fd9636dfb36 | 105 | for (j = 0; j < os && val[1]; ++j) |
IceTeam | 46:be4eebf40568 | 106 | if (obs[j].getCroisement (tmp.p1, close[indTMP1])) |
IceTeam | 46:be4eebf40568 | 107 | val[1] = false; |
IceTeam | 56:4fd9636dfb36 | 108 | for (j = 0; j < open.size () && val[1]; ++j) { |
IceTeam | 46:be4eebf40568 | 109 | if (open[j] == tmp.p1) |
IceTeam | 46:be4eebf40568 | 110 | val[1] = false; |
IceTeam | 46:be4eebf40568 | 111 | } |
IceTeam | 56:4fd9636dfb36 | 112 | for (j = 0; j < close.size () && val[1]; ++j) { |
IceTeam | 46:be4eebf40568 | 113 | if (close[j] == tmp.p1) |
IceTeam | 46:be4eebf40568 | 114 | val[1] = false; |
IceTeam | 46:be4eebf40568 | 115 | } |
IceTeam | 46:be4eebf40568 | 116 | if (val[1]) { |
IceTeam | 46:be4eebf40568 | 117 | open.push_back (pointParcours (tmp.p1, &close[indTMP1], arr)); |
IceTeam | 46:be4eebf40568 | 118 | } |
IceTeam | 46:be4eebf40568 | 119 | |
IceTeam | 46:be4eebf40568 | 120 | // On répète l'opération pour le troisième point |
IceTeam | 56:4fd9636dfb36 | 121 | 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) |
IceTeam | 56:4fd9636dfb36 | 122 | val[2] = false; |
IceTeam | 56:4fd9636dfb36 | 123 | for (j = 0; j < os && val[2]; ++j) |
IceTeam | 46:be4eebf40568 | 124 | if (obs[j].getCroisement (tmp.p2, close[indTMP1])) |
IceTeam | 46:be4eebf40568 | 125 | val[2] = false; |
IceTeam | 56:4fd9636dfb36 | 126 | for (j = 0; j < open.size () && val[2]; ++j) { |
IceTeam | 46:be4eebf40568 | 127 | if (open[j] == tmp.p2) |
IceTeam | 46:be4eebf40568 | 128 | val[2] = false; |
IceTeam | 46:be4eebf40568 | 129 | } |
IceTeam | 56:4fd9636dfb36 | 130 | for (j = 0; j < close.size () && val[2]; ++j) { |
IceTeam | 46:be4eebf40568 | 131 | if (close[j] == tmp.p2) |
IceTeam | 46:be4eebf40568 | 132 | val[2] = false; |
IceTeam | 46:be4eebf40568 | 133 | } |
IceTeam | 46:be4eebf40568 | 134 | if (val[2]) { |
IceTeam | 46:be4eebf40568 | 135 | open.push_back (pointParcours (tmp.p2, &close[indTMP1], arr)); |
IceTeam | 46:be4eebf40568 | 136 | } |
IceTeam | 46:be4eebf40568 | 137 | |
IceTeam | 46:be4eebf40568 | 138 | // On répète l'opération pour le quatrieme point |
IceTeam | 56:4fd9636dfb36 | 139 | 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) |
IceTeam | 56:4fd9636dfb36 | 140 | val[3] = false; |
IceTeam | 56:4fd9636dfb36 | 141 | for (j = 0; j < os && val[3]; ++j) |
IceTeam | 46:be4eebf40568 | 142 | if (obs[j].getCroisement (tmp.p3, close[indTMP1])) |
IceTeam | 46:be4eebf40568 | 143 | val[3] = false; |
IceTeam | 56:4fd9636dfb36 | 144 | for (j = 0; j < open.size () && val[3]; ++j) { |
IceTeam | 46:be4eebf40568 | 145 | if (open[j] == tmp.p3) |
IceTeam | 46:be4eebf40568 | 146 | val[3] = false; |
IceTeam | 46:be4eebf40568 | 147 | } |
IceTeam | 56:4fd9636dfb36 | 148 | for (j = 0; j < close.size () && val[3]; ++j) { |
IceTeam | 46:be4eebf40568 | 149 | if (close[j] == tmp.p3) |
IceTeam | 46:be4eebf40568 | 150 | val[3] = false; |
IceTeam | 46:be4eebf40568 | 151 | } |
IceTeam | 46:be4eebf40568 | 152 | if (val[3]) { |
IceTeam | 46:be4eebf40568 | 153 | open.push_back (pointParcours (tmp.p3, &close[indTMP1], arr)); |
IceTeam | 46:be4eebf40568 | 154 | } |
IceTeam | 46:be4eebf40568 | 155 | |
IceTeam | 46:be4eebf40568 | 156 | val[0] = true; |
IceTeam | 46:be4eebf40568 | 157 | val[1] = true; |
IceTeam | 46:be4eebf40568 | 158 | val[2] = true; |
IceTeam | 46:be4eebf40568 | 159 | val[3] = true; |
IceTeam | 46:be4eebf40568 | 160 | } |
IceTeam | 46:be4eebf40568 | 161 | } |
IceTeam | 46:be4eebf40568 | 162 | } |
IceTeam | 46:be4eebf40568 | 163 | |
IceTeam | 46:be4eebf40568 | 164 | /* L'algorithme n'est pas bon. Je devrais prendre ici le plus court chemin vers l'arrivée pour ceux qui ne sont pas bloqués, et pas un aléatoire ... */ |
IceTeam | 46:be4eebf40568 | 165 | if (ended) { |
IceTeam | 46:be4eebf40568 | 166 | pointParcours* pente; |
IceTeam | 46:be4eebf40568 | 167 | pente = &close[0]; |
IceTeam | 46:be4eebf40568 | 168 | while (pente != NULL) { |
IceTeam | 46:be4eebf40568 | 169 | path.push_first (*pente); |
IceTeam | 46:be4eebf40568 | 170 | pente = pente->getPere (); |
IceTeam | 46:be4eebf40568 | 171 | } |
IceTeam | 46:be4eebf40568 | 172 | path.push_back (pointParcours(arr, NULL, arr)); |
IceTeam | 46:be4eebf40568 | 173 | path.erase(0); |
IceTeam | 46:be4eebf40568 | 174 | endedParc = true; |
IceTeam | 46:be4eebf40568 | 175 | /* |
IceTeam | 46:be4eebf40568 | 176 | if (path.size() > 1) |
IceTeam | 46:be4eebf40568 | 177 | path.erase(0);*/ |
IceTeam | 46:be4eebf40568 | 178 | } |
IceTeam | 46:be4eebf40568 | 179 | } |
IceTeam | 46:be4eebf40568 | 180 | |
IceTeam | 46:be4eebf40568 | 181 | void map::Execute(float XObjectif, float YObjectif) { |
IceTeam | 46:be4eebf40568 | 182 | logger.printf("Findway %f-%f -> %f-%f\n\r", Codo->getX(), Codo->getY(), XObjectif, YObjectif); |
IceTeam | 46:be4eebf40568 | 183 | FindWay (Codo->getX(), Codo->getY(), XObjectif, YObjectif); |
IceTeam | 46:be4eebf40568 | 184 | |
IceTeam | 46:be4eebf40568 | 185 | if (endedParc) { |
IceTeam | 46:be4eebf40568 | 186 | //logger.printf("\n\r"); |
IceTeam | 46:be4eebf40568 | 187 | for (int i = 0; i < path.size (); i++) { |
IceTeam | 46:be4eebf40568 | 188 | logger.printf("Goto %d/%d [%f, %f]... \n\r", i, path.size()-1, path[i].getX(), path[i].getY()); |
IceTeam | 46:be4eebf40568 | 189 | //the = (float) atan2((double) (p[i].gety() - odo.getY()), (double) (p[i].getx() - odo.getX())); |
IceTeam | 46:be4eebf40568 | 190 | Codo->GotoXY((double)path[i].getX(), (double)path[i].getY()); |
IceTeam | 46:be4eebf40568 | 191 | logger.printf("Goto Fini\n\r"); |
IceTeam | 46:be4eebf40568 | 192 | } |
IceTeam | 46:be4eebf40568 | 193 | //logger.printf("Chemin fini !\n\r"); |
IceTeam | 46:be4eebf40568 | 194 | } |
IceTeam | 46:be4eebf40568 | 195 | else { |
IceTeam | 46:be4eebf40568 | 196 | logger.printf("Chemin pas trouve ...\n\r"); |
IceTeam | 46:be4eebf40568 | 197 | } |
IceTeam | 46:be4eebf40568 | 198 | endedParc = false; |
IceTeam | 57:86f491f5b25d | 199 | } |
IceTeam | 57:86f491f5b25d | 200 | |
IceTeam | 60:8d2320a54a32 | 201 | void map::Execute(int obj) { |
IceTeam | 68:d19988565dfd | 202 | objectif o = objectifs[obj]; |
IceTeam | 68:d19988565dfd | 203 | logger.printf("map::Execute(int obj) Realisation de l'objectif %d\n\r", obj); |
IceTeam | 69:1b257fb65281 | 204 | logger.printf("Depart [%f, %f] Objectif [%f, %f]\n\r", Codo->getX(), Codo->getY(), o.getX(), o.getY()); |
IceTeam | 57:86f491f5b25d | 205 | // logger.printf("Findway %f-%f -> %f-%f\n\r", Codo->getX(), Codo->getY(), XObjectif, YObjectif); |
IceTeam | 57:86f491f5b25d | 206 | FindWay (Codo->getX(), Codo->getY(), o.getX(), o.getY()); |
IceTeam | 57:86f491f5b25d | 207 | |
IceTeam | 57:86f491f5b25d | 208 | if (endedParc) { |
IceTeam | 57:86f491f5b25d | 209 | //logger.printf("\n\r"); |
IceTeam | 57:86f491f5b25d | 210 | for (int i = 0; i < path.size (); i++) { |
IceTeam | 57:86f491f5b25d | 211 | // logger.printf("Goto %d/%d [%f, %f]... \n\r", i, path.size()-1, path[i].getX(), path[i].getY()); |
IceTeam | 57:86f491f5b25d | 212 | //the = (float) atan2((double) (p[i].gety() - odo.getY()), (double) (p[i].getx() - odo.getX())); |
IceTeam | 57:86f491f5b25d | 213 | Codo->GotoXY((double)path[i].getX(), (double)path[i].getY()); |
IceTeam | 65:7bf11abfefc3 | 214 | Codo->Stop(); |
IceTeam | 57:86f491f5b25d | 215 | // logger.printf("Goto Fini\n\r"); |
IceTeam | 57:86f491f5b25d | 216 | } |
IceTeam | 63:176d04975f06 | 217 | Codo->GotoThet(o.getThet()); |
IceTeam | 60:8d2320a54a32 | 218 | o.Action(); |
IceTeam | 57:86f491f5b25d | 219 | //logger.printf("Chemin fini !\n\r"); |
IceTeam | 57:86f491f5b25d | 220 | } |
IceTeam | 57:86f491f5b25d | 221 | else { |
IceTeam | 57:86f491f5b25d | 222 | logger.printf("Chemin pas trouve ...\n\r"); |
IceTeam | 57:86f491f5b25d | 223 | } |
IceTeam | 57:86f491f5b25d | 224 | endedParc = false; |
IceTeam | 60:8d2320a54a32 | 225 | } |
IceTeam | 60:8d2320a54a32 | 226 | |
IceTeam | 64:24e1057a97f7 | 227 | void map::Execute() { |
IceTeam | 64:24e1057a97f7 | 228 | for (int i = 0; i < objectifs.size();++i) { |
IceTeam | 69:1b257fb65281 | 229 | logger.printf("map::Execute() Realisation de l'objectif %d\n\r", i); |
IceTeam | 64:24e1057a97f7 | 230 | Execute(i); |
IceTeam | 64:24e1057a97f7 | 231 | } |
IceTeam | 64:24e1057a97f7 | 232 | } |
IceTeam | 64:24e1057a97f7 | 233 | |
IceTeam | 66:47353c8122de | 234 | void map::Build () { |
IceTeam | 68:d19988565dfd | 235 | logger.printf("map::Build Creation des obstacles ...\n\r"); |
IceTeam | 60:8d2320a54a32 | 236 | if (couleur == VERT) { |
IceTeam | 60:8d2320a54a32 | 237 | max_x_table = 1400; |
IceTeam | 64:24e1057a97f7 | 238 | max_y_table = 1900; |
IceTeam | 64:24e1057a97f7 | 239 | min_x_table = 100; |
IceTeam | 64:24e1057a97f7 | 240 | min_y_table = 100; |
IceTeam | 60:8d2320a54a32 | 241 | } |
IceTeam | 60:8d2320a54a32 | 242 | else { |
IceTeam | 60:8d2320a54a32 | 243 | max_x_table = 2900; |
IceTeam | 64:24e1057a97f7 | 244 | max_y_table = 1900; |
IceTeam | 60:8d2320a54a32 | 245 | min_x_table = 1600; |
IceTeam | 64:24e1057a97f7 | 246 | min_y_table = 100; |
IceTeam | 60:8d2320a54a32 | 247 | } |
IceTeam | 60:8d2320a54a32 | 248 | |
IceTeam | 63:176d04975f06 | 249 | if (couleur == VERT) { |
IceTeam | 64:24e1057a97f7 | 250 | // Attention les commentaires sont inversées par rapport aux valeur en x et y des obstacles. |
IceTeam | 64:24e1057a97f7 | 251 | // Il faut lire les commentaires de la façon dont la carte est présentée dans le règlement |
IceTeam | 64:24e1057a97f7 | 252 | // Un / signifie un point de départ. Milieu/Haut/Haut signifie que l'on part du milieu, que l'on va en haut puis encore en haut |
IceTeam | 64:24e1057a97f7 | 253 | |
IceTeam | 60:8d2320a54a32 | 254 | addObs(obsCarr (0, 2000, 250, 150)); // Coté haut droite |
IceTeam | 60:8d2320a54a32 | 255 | addObs(obsCarr (200, 2000, 200, 50)); |
IceTeam | 64:24e1057a97f7 | 256 | |
IceTeam | 64:24e1057a97f7 | 257 | addObs(obsCarr (800, 100, 100, 15)); // Petit obstacle en haut à gauche |
IceTeam | 60:8d2320a54a32 | 258 | } |
IceTeam | 60:8d2320a54a32 | 259 | else { |
IceTeam | 60:8d2320a54a32 | 260 | addObs(obsCarr (3000, 2000, 250, 150)); // Coté bas droite |
IceTeam | 60:8d2320a54a32 | 261 | addObs(obsCarr (2800, 2000, 200, 50)); |
IceTeam | 64:24e1057a97f7 | 262 | |
IceTeam | 64:24e1057a97f7 | 263 | addObs(obsCarr (2200, 100, 100, 15)); // Petit Obstacle en haut à gauche |
IceTeam | 60:8d2320a54a32 | 264 | } |
IceTeam | 60:8d2320a54a32 | 265 | |
IceTeam | 64:24e1057a97f7 | 266 | addObs(obsCarr (1500, 750, 1100, 15)); // Obstacle du milieu à la verticale |
IceTeam | 64:24e1057a97f7 | 267 | addObs(obsCarr (1500, 1050, 20, 300)); // Vitre du milieu (horizontale) |
IceTeam | 60:8d2320a54a32 | 268 | |
IceTeam | 60:8d2320a54a32 | 269 | if (formation == 1) { |
IceTeam | 60:8d2320a54a32 | 270 | Build_formation_1 (couleur); |
IceTeam | 60:8d2320a54a32 | 271 | } |
IceTeam | 64:24e1057a97f7 | 272 | if (formation == 2) { |
IceTeam | 64:24e1057a97f7 | 273 | Build_formation_2 (couleur); |
IceTeam | 64:24e1057a97f7 | 274 | } |
IceTeam | 72:b628daa54f3c | 275 | if (formation == 3) { |
IceTeam | 72:b628daa54f3c | 276 | Build_formation_3 (couleur); |
IceTeam | 72:b628daa54f3c | 277 | } |
IceTeam | 60:8d2320a54a32 | 278 | else { |
IceTeam | 64:24e1057a97f7 | 279 | addObs(obsCarr (1250, 1000, 220, 220)); // Obstacles du test standard hors-coupe. A ignorer |
IceTeam | 60:8d2320a54a32 | 280 | addObs(obsCarr (1500, 750, 220, 220)); |
IceTeam | 60:8d2320a54a32 | 281 | addObs(obsCarr (1500, 1250, 220, 220)); |
IceTeam | 60:8d2320a54a32 | 282 | } |
IceTeam | 60:8d2320a54a32 | 283 | } |
IceTeam | 60:8d2320a54a32 | 284 | |
IceTeam | 60:8d2320a54a32 | 285 | void map::Build_formation_1 (int couleur) { |
IceTeam | 68:d19988565dfd | 286 | logger.printf("map::Build_formation1 Ajout des coquillages de la formation 1 ...\n\r"); |
IceTeam | 60:8d2320a54a32 | 287 | if (couleur == VERT) { |
IceTeam | 64:24e1057a97f7 | 288 | addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillage du haut - droite |
IceTeam | 64:24e1057a97f7 | 289 | addObs(obsCarr (200, 2000-750, 40, 40)); // Coquillage sur le même axe horizontal |
IceTeam | 60:8d2320a54a32 | 290 | |
IceTeam | 64:24e1057a97f7 | 291 | addObs(obsCarr (900, 2000-550, 40, 40)); // Coqullage du milieu/haut/haut |
IceTeam | 64:24e1057a97f7 | 292 | addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillage du milieu/haut |
IceTeam | 60:8d2320a54a32 | 293 | |
IceTeam | 64:24e1057a97f7 | 294 | addObs(obsCarr (1500, 2000-550, 40, 40)); // Coquillage du milieu gauche |
IceTeam | 64:24e1057a97f7 | 295 | addObs(obsCarr (1500, 2000-350, 40, 40)); // Coquillage du milieu droit |
IceTeam | 60:8d2320a54a32 | 296 | |
IceTeam | 60:8d2320a54a32 | 297 | //addObs(obsCarr (3000-900, 2000-550, 40, 40)); |
IceTeam | 64:24e1057a97f7 | 298 | addObs(obsCarr (3000-1200, 2000-350, 40, 40)); // Coquillage du milieu bas |
IceTeam | 60:8d2320a54a32 | 299 | |
IceTeam | 60:8d2320a54a32 | 300 | //addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillages du bas droite |
IceTeam | 60:8d2320a54a32 | 301 | //addObs(obsCarr (3000-200, 2000-750, 40, 40)); |
IceTeam | 60:8d2320a54a32 | 302 | } |
IceTeam | 60:8d2320a54a32 | 303 | else { |
IceTeam | 60:8d2320a54a32 | 304 | //addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillages du haut droit |
IceTeam | 60:8d2320a54a32 | 305 | //addObs(obsCarr (200, 2000-750, 40, 40)); |
IceTeam | 60:8d2320a54a32 | 306 | |
IceTeam | 60:8d2320a54a32 | 307 | //addObs(obsCarr (900, 2000-550, 40, 40)); |
IceTeam | 60:8d2320a54a32 | 308 | addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut |
IceTeam | 60:8d2320a54a32 | 309 | |
IceTeam | 64:24e1057a97f7 | 310 | addObs(obsCarr (1500, 2000-550, 40, 40)); // Coquillage du milieu gauche |
IceTeam | 64:24e1057a97f7 | 311 | addObs(obsCarr (1500, 2000-350, 40, 40)); // Coquillage du milieu droite |
IceTeam | 60:8d2320a54a32 | 312 | |
IceTeam | 64:24e1057a97f7 | 313 | addObs(obsCarr (3000-900, 2000-550, 40, 40)); // Coquillage du milieu/bas |
IceTeam | 64:24e1057a97f7 | 314 | addObs(obsCarr (3000-1200, 2000-350, 40, 40)); // Coquillage du milieu/bas/bas |
IceTeam | 60:8d2320a54a32 | 315 | |
IceTeam | 60:8d2320a54a32 | 316 | addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillages du bas droite |
IceTeam | 64:24e1057a97f7 | 317 | addObs(obsCarr (3000-200, 2000-750, 40, 40)); // Coquillage sur le même axe horizontal |
IceTeam | 60:8d2320a54a32 | 318 | } |
IceTeam | 60:8d2320a54a32 | 319 | } |
IceTeam | 60:8d2320a54a32 | 320 | |
IceTeam | 60:8d2320a54a32 | 321 | void map::Build_formation_2 (int couleur) { |
IceTeam | 60:8d2320a54a32 | 322 | if (couleur == VERT) { |
IceTeam | 64:24e1057a97f7 | 323 | addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillage du haut gauche |
IceTeam | 64:24e1057a97f7 | 324 | addObs(obsCarr (200, 2000-750, 40, 40)); // Coquillage du haut droite |
IceTeam | 60:8d2320a54a32 | 325 | |
IceTeam | 64:24e1057a97f7 | 326 | addObs(obsCarr (600, 2000-450, 40, 40)); // Coquillage du milieu/haut/haut droite |
IceTeam | 64:24e1057a97f7 | 327 | addObs(obsCarr (600, 2000-750, 40, 40)); // Coquillage du milieu/haut/haut sur le même axe horizontal |
IceTeam | 64:24e1057a97f7 | 328 | |
IceTeam | 64:24e1057a97f7 | 329 | addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillage du milieu/haut droite |
IceTeam | 60:8d2320a54a32 | 330 | } |
IceTeam | 60:8d2320a54a32 | 331 | else { |
IceTeam | 60:8d2320a54a32 | 332 | //addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillages du haut droit |
IceTeam | 60:8d2320a54a32 | 333 | //addObs(obsCarr (200, 2000-750, 40, 40)); |
IceTeam | 60:8d2320a54a32 | 334 | |
IceTeam | 60:8d2320a54a32 | 335 | //addObs(obsCarr (900, 2000-550, 40, 40)); |
IceTeam | 64:24e1057a97f7 | 336 | addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillage du bas gauche |
IceTeam | 64:24e1057a97f7 | 337 | addObs(obsCarr (3000-200, 2000-750, 40, 40)); // Coquillage du bas droite |
IceTeam | 64:24e1057a97f7 | 338 | |
IceTeam | 64:24e1057a97f7 | 339 | addObs(obsCarr (3000-600, 2000-450, 40, 40)); // Coquillage du milieu bas/bas droite |
IceTeam | 64:24e1057a97f7 | 340 | addObs(obsCarr (3000-600, 2000-750, 40, 40)); // Coquillage du milieu bas/bas sur le même axe horizontal |
IceTeam | 64:24e1057a97f7 | 341 | |
IceTeam | 64:24e1057a97f7 | 342 | addObs(obsCarr (1800, 2000-350, 40, 40)); // Coquillage du milieu/bas droite |
IceTeam | 64:24e1057a97f7 | 343 | } |
IceTeam | 72:b628daa54f3c | 344 | } |
IceTeam | 72:b628daa54f3c | 345 | |
IceTeam | 72:b628daa54f3c | 346 | void map::Build_formation_3 (int couleur) { |
IceTeam | 72:b628daa54f3c | 347 | if (couleur == VERT) { |
IceTeam | 72:b628daa54f3c | 348 | addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillage du haut gauche |
IceTeam | 72:b628daa54f3c | 349 | addObs(obsCarr (200, 2000-750, 40, 40)); // Coquillage du haut droite |
IceTeam | 72:b628daa54f3c | 350 | |
IceTeam | 72:b628daa54f3c | 351 | addObs(obsCarr (600, 2000-450, 40, 40)); // Coquillage du milieu/haut/haut droite |
IceTeam | 72:b628daa54f3c | 352 | addObs(obsCarr (600, 2000-750, 40, 40)); // Coquillage du milieu/haut/haut sur le même axe horizontal |
IceTeam | 72:b628daa54f3c | 353 | |
IceTeam | 72:b628daa54f3c | 354 | addObs(obsCarr (600, 2000-150, 40, 40)); // Coquillage du milieu/haut droite |
IceTeam | 72:b628daa54f3c | 355 | } |
IceTeam | 72:b628daa54f3c | 356 | else { |
IceTeam | 72:b628daa54f3c | 357 | //addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillages du haut droit |
IceTeam | 72:b628daa54f3c | 358 | //addObs(obsCarr (200, 2000-750, 40, 40)); |
IceTeam | 72:b628daa54f3c | 359 | |
IceTeam | 72:b628daa54f3c | 360 | //addObs(obsCarr (900, 2000-550, 40, 40)); |
IceTeam | 72:b628daa54f3c | 361 | // Inverser bas et haut |
IceTeam | 72:b628daa54f3c | 362 | addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillage du bas gauche |
IceTeam | 72:b628daa54f3c | 363 | addObs(obsCarr (3000-200, 2000-750, 40, 40)); // Coquillage du bas droite |
IceTeam | 72:b628daa54f3c | 364 | |
IceTeam | 72:b628daa54f3c | 365 | addObs(obsCarr (3000-600, 2000-450, 40, 40)); // Coquillage du milieu bas/bas droite |
IceTeam | 72:b628daa54f3c | 366 | addObs(obsCarr (3000-600, 2000-750, 40, 40)); // Coquillage du milieu bas/bas sur le même axe horizontal |
IceTeam | 72:b628daa54f3c | 367 | |
IceTeam | 72:b628daa54f3c | 368 | addObs(obsCarr (3000-600, 2000-150, 40, 40)); // Coquillage du milieu/bas droite |
IceTeam | 72:b628daa54f3c | 369 | } |
IceTeam | 46:be4eebf40568 | 370 | } |