Skip to content
krabi2016.cpp 3.46 KiB
Newer Older
#include "krabi2016.h"
#include "ascenseur.h"
#include "pinces.h"

Arnaud Cadot's avatar
Arnaud Cadot committed
#ifndef ROBOTHW
    #include <QDebug>
#endif

Krabi2016::Krabi2016(bool isYellow) : StrategieV3(isYellow)
{
    benne = Benne::getInstance(); // NB: Tu pourrais utiliser getInstance partout et te passer de l'attribut
    //Initialisation des tableaux d'étapes
    this->numeroEtapeGarage = ETAPE_GARAGE;
Arnaud Cadot's avatar
Arnaud Cadot committed
    tableauEtapesTotal = Etape::initTableauEtapeTotal(NOMBRE_ETAPES);//new Etape*[NOMBRE_ETAPES];
Arnaud Cadot's avatar
Arnaud Cadot committed
    // Création des étapes
    // Les étapes correspondant à des actions sont créées automatiquement lors de l'ajout d'actions
    int start = Etape::makeEtape(Position(250, 900, true), Etape::DEPART); // départ au fond de la zone de départ
Arnaud Cadot's avatar
Arnaud Cadot committed
    /** Points de passage **/
    Position wa_position = Position(600,  900, true);
    int wa = Etape::makeEtape(wa_position);

    int wb = Etape::makeEtape(Position(680,  700, true));
    int wc = Etape::makeEtape(Position(1000,  500, true));

    Position wd_position = Position(400,  500, true);
    int wd = Etape::makeEtape(wd_position);

    // On crée l'étape "pousse les cubes du début"
    int cd1 = Etape::makeEtape(new CubeDebut(Position(900, 900, true), wa_position));
Arnaud Cadot's avatar
Arnaud Cadot committed

    /** Actions **/
    // Zone de construction
    int zc1 = Etape::makeEtape(new ZoneConstruction(Position(1000, 600, true), benne));
    int zc2 = Etape::makeEtape(new ZoneConstruction(Position(1050, 600, true), benne));
Arnaud Cadot's avatar
Arnaud Cadot committed

    // Pieds
Guillaume Buret's avatar
Guillaume Buret committed
    int pa = Etape::makeEtape(new RamasserPied(Position(1100,  280, true)));
    int pb = Etape::makeEtape(new RamasserPied(Position(1300, 280, true)));
    // Cabines de plage
    int cp1 = Etape::makeEtape(new Cabine(Position(250, 50, true), wd_position));
    int cp2 = Etape::makeEtape(new Cabine(Position(500, 50, true), wd_position));
Arnaud Cadot's avatar
Arnaud Cadot committed
    /** Liens **/
    // [WIP]
    Etape::get(start)   ->addVoisin(wa);
Guillaume Buret's avatar
Guillaume Buret committed
    Etape::get(wa)      ->addVoisin(wb);
    Etape::get(cd1)     ->addVoisin(wa);
Guillaume Buret's avatar
Guillaume Buret committed

    Etape::get(wc)      ->addVoisin(zc1);
    Etape::get(wc)      ->addVoisin(zc2);
    Etape::get(wc)      ->addVoisin(pa);

    Etape::get(cp1)     ->addVoisin(wd);
    Etape::get(cp2)     ->addVoisin(wd);
    Etape::get(wd)      ->addVoisin(wb);
Guillaume Buret's avatar
Guillaume Buret committed
    Etape::get(pa)      ->addVoisin(wb);
    Etape::get(pb)      ->addVoisin(pa);
Arnaud Cadot's avatar
Arnaud Cadot committed

#ifndef ROBOTHW
    qDebug() << Etape::getTotalEtapes();
#endif


    // Certaines actions d'étapes ne finnissent pas là où elles ont commencé :
    // Clapets:
//    Etape::get(4)->setNumeroEtapeFinAction(43); //Clapet notre côté vers notre bord
Arnaud Cadot's avatar
Arnaud Cadot committed
    this->nombreEtapes = Etape::getTotalEtapes();
Arnaud Cadot's avatar
Arnaud Cadot committed
int Krabi2016::getScoreEtape(int i)
{

Arnaud Cadot's avatar
Arnaud Cadot committed
    switch (this->tableauEtapesTotal[i]->getEtapeType())
Arnaud Cadot's avatar
Arnaud Cadot committed
        /*case Etape::TYPE_ACTION:
            return NB_POINTS_ACTION; */

        case Etape::DEPART :
            return 0;
        case Etape::POINT_PASSAGE :
            return 0;
            // 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