
Time is good
Fork of Robot2016_2-0 by
Diff: Map/map.cpp
- Revision:
- 64:24e1057a97f7
- Parent:
- 63:176d04975f06
- Child:
- 65:7bf11abfefc3
--- a/Map/map.cpp Wed May 04 21:51:00 2016 +0000 +++ b/Map/map.cpp Thu May 05 01:30:14 2016 +0200 @@ -2,7 +2,27 @@ /* Dernier Changement : Romain 20h30 */ -map::map (Odometry* nodo, AX12 * np, ControlleurPince * npince) : Codo(nodo) { +void map::Build_Objectives() { + if (couleur == VERT) { + addObj (objectif (OBJ_BLOC, 120, 1000, 0, Parasol, pince)); + addObj (objectif (OBJ_BLOC, 120, 1000, 0, Parasol, pince, 10)); + } + else { + addObj (objectif (OBJ_BLOC, 3000-120, 1000, 0, Parasol, pince)); + addObj (objectif (OBJ_BLOC, 3000-120, 1000, 0, Parasol, pince)); + } +} + +map::map (Odometry* nodo, AX12 * np, ControlleurPince * npince, int ncouleur, int nformation) : Codo(nodo), Parasol(np), ControlleurPince(npince) { + couleur = ncouleur; + formation = nformation; + + if (couleur == VERT) { + Codo->setPos(X_START_VERT, Y_START, 0); + } + else { + Codo->setPos(Y_START, Y_START, -PI); + } } void map::addObs (obsCarr nobs) { @@ -195,39 +215,54 @@ endedParc = false; } +void map::Execute() { + for (int i = 0; i < objectifs.size();++i) { + Execute(i); + } +} + void map::Build (int couleur, int formation) { if (couleur == VERT) { max_x_table = 1400; - max_y_table = 1800; - min_x_table = 0; - min_y_table = 0; + max_y_table = 1900; + min_x_table = 100; + min_y_table = 100; } else { max_x_table = 2900; - max_y_table = 1800; + max_y_table = 1900; min_x_table = 1600; - min_y_table = 0; + min_y_table = 100; } 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)); + + addObs(obsCarr (800, 100, 100, 15)); // Petit obstacle en haut à gauche } else { addObs(obsCarr (3000, 2000, 250, 150)); // Coté bas droite addObs(obsCarr (2800, 2000, 200, 50)); - addObs(obsCarr (2200, 100, 100, 15)); + + addObs(obsCarr (2200, 100, 100, 15)); // Petit Obstacle en haut à gauche } - addObs(obsCarr (1500, 750, 1100, 15)); - addObs(obsCarr (1500, 1050, 20, 300)); + addObs(obsCarr (1500, 750, 1100, 15)); // Obstacle du milieu à la verticale + addObs(obsCarr (1500, 1050, 20, 300)); // Vitre du milieu (horizontale) if (formation == 1) { Build_formation_1 (couleur); } + if (formation == 2) { + Build_formation_2 (couleur); + } else { - addObs(obsCarr (1250, 1000, 220, 220)); + addObs(obsCarr (1250, 1000, 220, 220)); // Obstacles du test standard hors-coupe. A ignorer addObs(obsCarr (1500, 750, 220, 220)); addObs(obsCarr (1500, 1250, 220, 220)); } @@ -235,17 +270,17 @@ void map::Build_formation_1 (int couleur) { if (couleur == VERT) { - addObs(obsCarr (200, 2000-450, 40, 40)); // Coquillages du haut droit - addObs(obsCarr (200, 2000-750, 40, 40)); + 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 (900, 2000-550, 40, 40)); - addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut + 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 (1500, 2000-550, 40, 40)); - addObs(obsCarr (1500, 2000-350, 40, 40)); + addObs(obsCarr (1500, 2000-550, 40, 40)); // Coquillage du milieu gauche + addObs(obsCarr (1500, 2000-350, 40, 40)); // Coquillage du milieu droit //addObs(obsCarr (3000-900, 2000-550, 40, 40)); - addObs(obsCarr (3000-1200, 2000-350, 40, 40)); + addObs(obsCarr (3000-1200, 2000-350, 40, 40)); // Coquillage du milieu bas //addObs(obsCarr (3000-200, 2000-450, 40, 40)); // Coquillages du bas droite //addObs(obsCarr (3000-200, 2000-750, 40, 40)); @@ -257,51 +292,49 @@ //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 (1500, 2000-550, 40, 40)); // Coquillage du milieu gauche + addObs(obsCarr (1500, 2000-350, 40, 40)); // Coquillage du milieu droite - addObs(obsCarr (3000-900, 2000-550, 40, 40)); - addObs(obsCarr (3000-1200, 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-200, 2000-450, 40, 40)); // Coquillages du bas droite - addObs(obsCarr (3000-200, 2000-750, 40, 40)); + addObs(obsCarr (3000-200, 2000-750, 40, 40)); // Coquillage sur le même axe horizontal } } void map::Build_formation_2 (int couleur) { if (couleur == VERT) { - 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 (200, 2000-450, 40, 40)); // Coquillage du haut gauche + addObs(obsCarr (200, 2000-750, 40, 40)); // Coquillage du 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)); + 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 } 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 (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)); + 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_Objectives() { + if (couleur == VERT) { + addObj (objectif (OBJ_BLOC, 120, 1000, 0, Parasol, pince)); + addObj (objectif (OBJ_BLOC, 120, 1000, 0, Parasol, pince)); + } + else { + addObj (objectif (OBJ_BLOC, 3000-120, 1000, 0, Parasol, pince)); + addObj (objectif (OBJ_BLOC, 3000-120, 1000, 0, Parasol, pince)); } } \ No newline at end of file