Programme de contrôle de l'octopode 4DOF, Theraphosa-Salconi.

Dependencies:   debug mbed

CtrlBridge

  • fonction quelquonque pour communiquer avec les module
  • fonction quelquonque pour faire des recherche dans les module dispo
  • autre fonction pour jouer avec MemRegistre

Version 1.2.0

  • Ajout d'un mode de simulation pour tester le code avec seulement un contrôleur stm32

labyrinthe.h

Committer:
salco
Date:
2015-09-29
Revision:
37:f53e9f7a14df
Parent:
36:474d4795aafa
Child:
38:57d5f36a0333

File content as of revision 37:f53e9f7a14df:

/**
  * @file       labyrinthe.h
  * @brief      Regroupement de fonction pour enregistrer le millieu en 2D.
  * @author     Salco
  * @version    2.00
  * @date       11 mars 2015
  */
#ifndef LABYRINTHE_H
#define LABYRINTHE_H
  
#define DEFAULTLABLEIGHT 4
#define DEBUGLABCOORD 0
#define DEBUGLABSEARCHCOORD 0

#include "mbed.h"
#include "debug.h"
#include "settingDebug.h"
#include <string>

#define UP 1
#define DOWN 2
#define LEFT 3
#define RIGHT 4


/*#define VIDE 3
#define EXPLORER 1
#define MUR 2
#define PAS_EXPLORER 0*/

// 1 tuile == 4 byte


    
class Labyrinthe
{
signed char m_posX,m_posY;
char direction;
string mapDuLabyrinthe;



public:
enum coordoner_t{
/* C7,C8,C9 */
/* C4,C5,C6 */
/* C1,C2,C3 */
    unset = -1,
    C1 = 1,
    C2 = 2,
    C3 = 3,
    C4 = 4,
    C5 = 5,
    C6 = 6,
    C7 = 7,
    C8 = 8,
    C9 = 9
    };
    
    enum case_t{
        error       =-1,
        pasExplorer = 0,
        explorer    = 1,
        mur         = 2,
        vide        = 3
    };
    
Labyrinthe();
~Labyrinthe();

char getDirection(){return direction;}
void setDirection(char dir){direction= dir;}

signed char getX(void){return m_posX;}
void setX(signed char x){m_posX = x;}

signed char getY(void){return m_posY;}
void getY(signed char y){m_posY = y;}

void goUp(void){m_posY++;}
void goDown(void){m_posY--;}
void goLeft(void){m_posX--;}
void goRight(void){m_posX++;}



case_t getC(coordoner_t cX);
case_t getC(signed char x, signed char y, coordoner_t cX);
case_t getC(signed char x, signed char y);
void setC(case_t value, signed char x, signed char y, coordoner_t cX);
void setC(case_t value, coordoner_t cX);
void setC(case_t value, signed char x, signed char y);

void setC_Up(case_t value);
void setC_Down(case_t value);
void setC_Left(case_t value);
void setC_Right(case_t value);
void setMyPos(case_t value);

      /**
       * Surcharge de showMap(void)
       * @return The formated map 3x3 result
       */
        string showMap(void);
        
      /**
       * Fonction permetant de sortire la map de la position x et y
       * @param x position X.
       * @param y position Y.
       * @return The formated map 3x3 result
       */
        string showMap(signed char x, signed char y);




    private:
    int searchCoord(signed char posX,signed char posY);

    coordoner_t getCoordoner(signed char &x, signed char &y);
    coordoner_t getCoordoner(void);
    
    bool updateMap(string mapUpdated);
    bool updateMap(string mapUpdated,signed char x, signed char y);
    bool addMap(signed char x, signed char y);

};
#endif //LABYRINTHE_H//