Commit 49e97cf3 authored by Guillaume Buret's avatar Guillaume Buret

ajout de la classe CubeDebut, qui s'occupe des cubes devant la ligne d'arrivée

parent 814fe1f2
...@@ -109,6 +109,7 @@ HEADERS += \ ...@@ -109,6 +109,7 @@ HEADERS += \
../../include/actionneurs/fishingNet.h \ ../../include/actionneurs/fishingNet.h \
../../include/actionneurs/parasol.h \ ../../include/actionneurs/parasol.h \
../../include/strategie/benne.h \ ../../include/strategie/benne.h \
../../include/strategie/cubeDebut.h \
../../include/clock.h ../../include/clock.h
...@@ -189,6 +190,7 @@ SOURCES += \ ...@@ -189,6 +190,7 @@ SOURCES += \
../../src/strategie/cabine.cpp \ ../../src/strategie/cabine.cpp \
../../src/strategie/benne.cpp \ ../../src/strategie/benne.cpp \
../../src/strategie/zoneConstruction.cpp \ ../../src/strategie/zoneConstruction.cpp \
../../src/strategie/cubeDebut.cpp \
../../src/actionneurs/fishingNet.cpp \ ../../src/actionneurs/fishingNet.cpp \
../../src/actionneurs/parasol.cpp \ ../../src/actionneurs/parasol.cpp \
../../src/clock.cpp ../../src/clock.cpp
......
#ifndef CUBEDEBUT_H
#define CUBEDEBUT_H
#include "position.h"
#include "mediumLevelAction.h"
#include "command.h"
class CubeDebut : public MediumLevelAction
{
public:
CubeDebut();
CubeDebut(Position position);
~CubeDebut();
int update();
Etape::EtapeType getType();
protected:
Position position;
};
#endif // CUBEDEBUT_H
...@@ -22,6 +22,7 @@ public: ...@@ -22,6 +22,7 @@ public:
CABINE = 8, CABINE = 8,
ZONE_CONSTRUCTION = 9, ZONE_CONSTRUCTION = 9,
CUBE_DEBUT = 10,
POINT_PASSAGE = 0, POINT_PASSAGE = 0,
COLLECT = 1, COLLECT = 1,
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "manipulationCoinGaucheHaut.h" #include "manipulationCoinGaucheHaut.h"
#include "manipulationCoinGaucheHautPiedSolitaire.h" #include "manipulationCoinGaucheHautPiedSolitaire.h"
#include "benne.h" #include "benne.h"
#include "cubeDebut.h"
class Krabi2016 : public StrategieV3 class Krabi2016 : public StrategieV3
{ {
......
#include "initkrabi.h" #include "initkrabi.h"
#ifdef ROBOTHW #ifdef ROBOTHW
InitKrabi::InitKrabi() : Initialisation(PositionPlusAngle(Position(194, 1000), 0)) InitKrabi::InitKrabi() : Initialisation(PositionPlusAngle(Position(194, 900), 0))
{ {
} }
#else #else
#include <QDebug> #include <QDebug>
InitKrabi::InitKrabi(bool yellow, Robot* robot) : Initialisation(PositionPlusAngle(Position(194, 1000), 0), yellow, robot) InitKrabi::InitKrabi(bool yellow, Robot* robot) : Initialisation(PositionPlusAngle(Position(194, 900), 0), yellow, robot)
{ {
qDebug() << "InitKrabi " << robot; qDebug() << "InitKrabi " << robot;
} }
......
#include "cubeDebut.h"
#include "strategieV2.h"
#include "mediumLevelAction.h"
#include "command.h"
#include "position.h"
#ifndef ROBOTHW
#include <QDebug>
#endif
CubeDebut::CubeDebut(){}
CubeDebut::CubeDebut(Position goalPosition):MediumLevelAction(goalPosition)
{
goalPosition = this->goalPosition;
}
CubeDebut::~CubeDebut(){}
Etape::EtapeType CubeDebut::getType()
{
return Etape::CUBE_DEBUT;
}
int CubeDebut::update()
{
if (status == 0) //Début
{
StrategieV2::setCurrentGoal(this->getGoalPosition(), false, VITESSE_LINEAIRE_MAX, -100.0, 100.f);
#ifndef ROBOTHW
qDebug() << "Poussage des cubes devant la zone de depart";
#endif
status++;
}
else if (status == 1) {
if (Command::isNear(this->getGoalPosition(), 100.0f)) // le second paramètre est la distance a l'objectif
{
// après avoir poussé les cubes on revient en marche arrière
StrategieV2::setCurrentGoal(Position(600, 900), true, VITESSE_LINEAIRE_MAX, -100.0, 10.f);
#ifndef ROBOTHW
qDebug() << "On revient au bercail";
#endif
status++;
}
}
else if (status == 2) {
if (Command::isNear(Position(600, 900), 10.0f)) // le second paramètre est la distance a l'objectif
{
#ifndef ROBOTHW
qDebug() << "On est revenu au bercail";
#endif
status++;
}
}
else if (status == 3) {
#ifndef ROBOTHW
qDebug() << "Etape poussage des cubes finie";
#endif
status = -1;
}
return status;
}
...@@ -375,6 +375,8 @@ QString Etape::getNameType(EtapeType type) ...@@ -375,6 +375,8 @@ QString Etape::getNameType(EtapeType type)
return "Tapis"; return "Tapis";
case DEPOSER_GOBELET: case DEPOSER_GOBELET:
return "Déposer Gobelet"; return "Déposer Gobelet";
case CUBE_DEBUT:
return "Pousser les cubes a l'init";
default: default:
return QString::number(type); return QString::number(type);
} }
...@@ -404,6 +406,8 @@ QString Etape::getShortNameType(EtapeType type) ...@@ -404,6 +406,8 @@ QString Etape::getShortNameType(EtapeType type)
return "Tapis"; return "Tapis";
case DEPOSER_GOBELET: case DEPOSER_GOBELET:
return "D.G"; return "D.G";
case CUBE_DEBUT:
return "Cube debut";
default: default:
return ""; return "";
} }
......
...@@ -19,11 +19,14 @@ Krabi2016::Krabi2016(bool isYellow) : StrategieV3(isYellow) ...@@ -19,11 +19,14 @@ Krabi2016::Krabi2016(bool isYellow) : StrategieV3(isYellow)
// Création des étapes // Création des étapes
// Les étapes correspondant à des actions sont créées automatiquement lors de l'ajout d'actions // Les étapes correspondant à des actions sont créées automatiquement lors de l'ajout d'actions
int start = Etape::makeEtape(Position(250, 1000, true), Etape::DEPART); // départ au fond de la zone de départ int start = Etape::makeEtape(Position(250, 900, true), Etape::DEPART); // départ au fond de la zone de départ
/** Points de passage **/ /** Points de passage **/
int wa = Etape::makeEtape(Position(600, 1000, true)); int wa = Etape::makeEtape(Position(600, 900, true));
int wb = Etape::makeEtape(Position(880, 1140, true)); int wb = Etape::makeEtape(Position(680, 740, true));
// On crée l'étape "pousse les cubes du début"
int c1 = Etape::makeEtape(new CubeDebut(Position(900, 900, true)));
/** Actions **/ /** Actions **/
...@@ -33,8 +36,8 @@ Krabi2016::Krabi2016(bool isYellow) : StrategieV3(isYellow) ...@@ -33,8 +36,8 @@ Krabi2016::Krabi2016(bool isYellow) : StrategieV3(isYellow)
// Pieds // Pieds
int pa = Etape::makeEtape(new RamasserPied(Position(870, 1655, true))); int pa = Etape::makeEtape(new RamasserPied(Position(970, 260, true)));
int pb = Etape::makeEtape(new RamasserPied(Position(1100, 1670, true))); int pb = Etape::makeEtape(new RamasserPied(Position(1200, 260, true)));
// Etc. // Etc.
...@@ -44,6 +47,7 @@ Krabi2016::Krabi2016(bool isYellow) : StrategieV3(isYellow) ...@@ -44,6 +47,7 @@ Krabi2016::Krabi2016(bool isYellow) : StrategieV3(isYellow)
Etape::get(start) ->addVoisin(wa); Etape::get(start) ->addVoisin(wa);
Etape::get(wa) ->addVoisin(wb, zc2); Etape::get(wa) ->addVoisin(wb, zc2);
Etape::get(wa) ->addVoisin(zc1); Etape::get(wa) ->addVoisin(zc1);
Etape::get(c1) ->addVoisin(wa);
Etape::get(wb) ->addVoisin(zc2); Etape::get(wb) ->addVoisin(zc2);
Etape::get(pa) ->addVoisin(wb, zc2); Etape::get(pa) ->addVoisin(wb, zc2);
Etape::get(pb) ->addVoisin(pa, zc2); Etape::get(pb) ->addVoisin(pa, zc2);
...@@ -81,20 +85,23 @@ int Krabi2016::getScoreEtape(int i) ...@@ -81,20 +85,23 @@ int Krabi2016::getScoreEtape(int i)
return 1; return 1;
} }
else { else {
return 10000; return 1000;
} }
} }
case Etape::CUBE_DEBUT :
return 10000;
case Etape::RAMASSER_PIED : { case Etape::RAMASSER_PIED : {
// On fait comme si on avait rammasé un cube, du coup la benne est pleine, en vrai on fera // On fait comme si on avait rammasé un cube, du coup la benne est pleine, en vrai on fera
// tout ça dans la future classe cube // tout ça dans la future classe cube
benne->setBenneFull(); benne->setBenneFull();
return 900; return 100;
} }
default : default :
return 10; /* DEBUG (0 sinon) */ return 1; /* DEBUG (0 sinon) */
} }
} }
...@@ -32,7 +32,7 @@ int ZoneConstruction::update() ...@@ -32,7 +32,7 @@ int ZoneConstruction::update()
#ifndef ROBOTHW #ifndef ROBOTHW
qDebug() << "Zone Construction"; qDebug() << "Zone Construction";
#endif #endif
StrategieV2::setCurrentGoal(this->getGoalPosition(), false, VITESSE_LINEAIRE_MAX, -100.0, 200.f); //StrategieV2::setCurrentGoal(this->getGoalPosition(), false, VITESSE_LINEAIRE_MAX, -100.0, 200.f);
status++; status++;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment