
Time is good
Fork of Robot2016_2-0 by
Diff: Map/map.cpp
- Revision:
- 76:a862cb10559c
- Parent:
- 75:195dd2bb13a3
--- a/Map/map.cpp Thu May 05 04:36:59 2016 +0000 +++ b/Map/map.cpp Thu May 05 06:34:13 2016 +0000 @@ -2,34 +2,7 @@ /* Dernier Changement : Romain 20h30 */ -void map::Build_Objectives() { - if (objectifs.empty()) { - logger.printf("map::Build_Objectives Creation des Objectifs ...\n\r"); - if (couleur == VERT) { - addObj (objectif (OBJ_BLOC_PRISE, 120, 1000, 0, Codo, Parasol, pince)); - addObj (objectif (OBJ_BLOC_LACHE, 120, 1000, 0, Codo, Parasol, pince, 50)); - } - else { - addObj (objectif (OBJ_BLOC_PRISE, 3000-350, 850, 0, Codo, Parasol, pince)); - addObj (objectif (RIEN, 3000-550, 850, 0, Codo, Parasol, pince)); - addObj (objectif (OBJ_BLOC_LACHE, 3000-1050, 1100, 0, Codo, Parasol, pince)); - addObj (objectif (RIEN, 3000-200, 850, 0, Codo, Parasol, pince)); - } - } -} - -map::map (Odometry* nodo, AX12 * np, ControlleurPince * npince, int ncouleur, int nformation) : Codo(nodo), Parasol(np), pince(npince) { - couleur = ncouleur; - formation = nformation; - - if (couleur == VERT) { - Codo->setPos(X_START_VERT, Y_START, 0); - } - else { - Codo->setPos(Y_START, Y_START, -PI); - } - Build(); - Build_Objectives(); +map::map (Odometry* nodo, AX12 * np, ControlleurPince * npince) : Codo(nodo) { } void map::addObs (obsCarr nobs) { @@ -60,6 +33,7 @@ pointParcours depP (dep, NULL, arr); int indTMP1=0; // Le point actuel + int PointEnding = 0; open.push_back (depP); while (!ended && !open.empty ()) { @@ -199,10 +173,8 @@ } void map::Execute(int obj) { + // logger.printf("Findway %f-%f -> %f-%f\n\r", Codo->getX(), Codo->getY(), XObjectif, YObjectif); objectif o = objectifs[obj]; - logger.printf("map::Execute(int obj) Realisation de l'objectif %d\n\r", obj); - logger.printf("Depart [%f, %f] Objectif [%f, %f]\n\r", Codo->getX(), Codo->getY(), o.getX(), o.getY()); - // logger.printf("Findway %f-%f -> %f-%f\n\r", Codo->getX(), Codo->getY(), XObjectif, YObjectif); FindWay (Codo->getX(), Codo->getY(), o.getX(), o.getY()); if (endedParc) { @@ -211,7 +183,6 @@ // logger.printf("Goto %d/%d [%f, %f]... \n\r", i, path.size()-1, path[i].getX(), path[i].getY()); //the = (float) atan2((double) (p[i].gety() - odo.getY()), (double) (p[i].getx() - odo.getX())); Codo->GotoXY((double)path[i].getX(), (double)path[i].getY()); - Codo->Stop(); // logger.printf("Goto Fini\n\r"); } Codo->GotoThet(o.getThet()); @@ -224,78 +195,57 @@ endedParc = false; } -void map::Execute() { - for (int i = 0; i < objectifs.size();++i) { - logger.printf("map::Execute() Realisation de l'objectif %d\n\r", i); - Execute(i); - } -} - -void map::Build () { - logger.printf("map::Build Creation des obstacles ...\n\r"); +void map::Build (int couleur, int formation) { if (couleur == VERT) { max_x_table = 1400; - max_y_table = 1900; - min_x_table = 100; - min_y_table = 100; + max_y_table = 1800; + min_x_table = 0; + min_y_table = 0; } else { max_x_table = 2900; - max_y_table = 1900; + max_y_table = 1800; min_x_table = 1600; - min_y_table = 100; + min_y_table = 0; } if (couleur == VERT) { - // Attention les commentaires sont inversées par rapport aux valeur en x et y des obstacles. - // Il faut lire les commentaires de la façon dont la carte est présentée dans le règlement - // 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 - addObs(obsCarr (0, 2000, 250, 150)); // Coté haut droite addObs(obsCarr (200, 2000, 200, 50)); - - addObs(obsCarr (800, 100, 100, 15)); // Petit obstacle en haut à gauche + addObs(obsCarr (800, 100, 100, 15)); } else { addObs(obsCarr (3000, 2000, 250, 150)); // Coté bas droite addObs(obsCarr (2800, 2000, 200, 50)); - - addObs(obsCarr (2200, 100, 100, 15)); // Petit Obstacle en haut à gauche + addObs(obsCarr (2200, 100, 100, 15)); } - addObs(obsCarr (1500, 750, 1100, 15)); // Obstacle du milieu à la verticale - addObs(obsCarr (1500, 1050, 20, 300)); // Vitre du milieu (horizontale) + addObs(obsCarr (1500, 750, 1100, 15)); + addObs(obsCarr (1500, 1050, 20, 300)); if (formation == 1) { Build_formation_1 (couleur); } - if (formation == 2) { - Build_formation_2 (couleur); - } - if (formation == 3) { - Build_formation_3 (couleur); - } else { - addObs(obsCarr (1250, 1000, 220, 220)); // Obstacles du test standard hors-coupe. A ignorer + addObs(obsCarr (1250, 1000, 220, 220)); addObs(obsCarr (1500, 750, 220, 220)); addObs(obsCarr (1500, 1250, 220, 220)); } } void map::Build_formation_1 (int couleur) { - logger.printf("map::Build_formation1 Ajout des coquillages de la formation 1 ...\n\r"); if (couleur == VERT) { - addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillage du haut - droite - addObs(obsCarr (200, 2000-750, 40, 40)); // Coquillage sur le même axe horizontal + addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillages du haut droit + addObs(obsCarr (200, 2000-750, 40, 40)); - addObs(obsCarr (900, 2000-550, 40, 40)); // Coqullage du milieu/haut/haut - addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillage du milieu/haut + addObs(obsCarr (900, 2000-550, 40, 40)); + addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut - addObs(obsCarr (1500, 2000-550, 40, 40)); // Coquillage du milieu gauche - addObs(obsCarr (1500, 2000-350, 40, 40)); // Coquillage du milieu droit + addObs(obsCarr (1500, 2000-550, 40, 40)); + addObs(obsCarr (1500, 2000-350, 40, 40)); //addObs(obsCarr (3000-900, 2000-550, 40, 40)); - addObs(obsCarr (3000-1200, 2000-350, 40, 40)); // Coquillage du milieu bas + addObs(obsCarr (3000-1200, 2000-350, 40, 40)); //addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillages du bas droite //addObs(obsCarr (3000-200, 2000-750, 40, 40)); @@ -307,64 +257,51 @@ //addObs(obsCarr (900, 2000-550, 40, 40)); addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut - addObs(obsCarr (1500, 2000-550, 40, 40)); // Coquillage du milieu gauche - addObs(obsCarr (1500, 2000-350, 40, 40)); // Coquillage du milieu droite + addObs(obsCarr (1500, 2000-550, 40, 40)); + addObs(obsCarr (1500, 2000-350, 40, 40)); - addObs(obsCarr (3000-900, 2000-550, 40, 40)); // Coquillage du milieu/bas - addObs(obsCarr (3000-1200, 2000-350, 40, 40)); // Coquillage du milieu/bas/bas + addObs(obsCarr (3000-900, 2000-550, 40, 40)); + addObs(obsCarr (3000-1200, 2000-350, 40, 40)); addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillages du bas droite - addObs(obsCarr (3000-200, 2000-750, 40, 40)); // Coquillage sur le même axe horizontal + addObs(obsCarr (3000-200, 2000-750, 40, 40)); } } void map::Build_formation_2 (int couleur) { if (couleur == VERT) { - addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillage du haut gauche - addObs(obsCarr (200, 2000-750, 40, 40)); // Coquillage du haut droite + addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillages du haut droit + addObs(obsCarr (200, 2000-750, 40, 40)); + + addObs(obsCarr (600, 2000-450, 40, 40)); // Coquillages du milieu haut + addObs(obsCarr (600, 2000-750, 40, 40)); - addObs(obsCarr (600, 2000-450, 40, 40)); // Coquillage du milieu/haut/haut droite - addObs(obsCarr (600, 2000-750, 40, 40)); // Coquillage du milieu/haut/haut sur le même axe horizontal - - addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillage du milieu/haut droite + addObs(obsCarr (900, 2000-550, 40, 40)); + addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut + + addObs(obsCarr (1500, 2000-550, 40, 40)); + addObs(obsCarr (1500, 2000-350, 40, 40)); + + //addObs(obsCarr (3000-900, 2000-550, 40, 40)); + addObs(obsCarr (3000-1200, 2000-350, 40, 40)); + + //addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillages du bas droite + //addObs(obsCarr (3000-200, 2000-750, 40, 40)); } else { //addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillages du haut droit //addObs(obsCarr (200, 2000-750, 40, 40)); //addObs(obsCarr (900, 2000-550, 40, 40)); - addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillage du bas gauche - addObs(obsCarr (3000-200, 2000-750, 40, 40)); // Coquillage du bas droite - - addObs(obsCarr (3000-600, 2000-450, 40, 40)); // Coquillage du milieu bas/bas droite - addObs(obsCarr (3000-600, 2000-750, 40, 40)); // Coquillage du milieu bas/bas sur le même axe horizontal - - addObs(obsCarr (1800, 2000-350, 40, 40)); // Coquillage du milieu/bas droite - } -} - -void map::Build_formation_3 (int couleur) { - if (couleur == VERT) { - addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillage du haut gauche - addObs(obsCarr (200, 2000-750, 40, 40)); // Coquillage du haut droite - - addObs(obsCarr (600, 2000-450, 40, 40)); // Coquillage du milieu/haut/haut droite - addObs(obsCarr (600, 2000-750, 40, 40)); // Coquillage du milieu/haut/haut sur le même axe horizontal - - addObs(obsCarr (600, 2000-150, 40, 40)); // Coquillage du milieu/haut droite - } - else { - //addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillages du haut droit - //addObs(obsCarr (200, 2000-750, 40, 40)); + addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut + + addObs(obsCarr (1500, 2000-550, 40, 40)); + addObs(obsCarr (1500, 2000-350, 40, 40)); - //addObs(obsCarr (900, 2000-550, 40, 40)); - // Inverser bas et haut - addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillage du bas gauche - addObs(obsCarr (3000-200, 2000-750, 40, 40)); // Coquillage du bas droite - - addObs(obsCarr (3000-600, 2000-450, 40, 40)); // Coquillage du milieu bas/bas droite - addObs(obsCarr (3000-600, 2000-750, 40, 40)); // Coquillage du milieu bas/bas sur le même axe horizontal - - addObs(obsCarr (3000-600, 2000-150, 40, 40)); // Coquillage du milieu/bas droite + addObs(obsCarr (3000-900, 2000-550, 40, 40)); + addObs(obsCarr (3000-1200, 2000-350, 40, 40)); + + addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillages du bas droite + addObs(obsCarr (3000-200, 2000-750, 40, 40)); } } \ No newline at end of file