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
Committer:
salco
Date:
Sun Sep 13 06:56:09 2015 +0000
Revision:
36:474d4795aafa
Parent:
35:d81f6b927932
Child:
37:f53e9f7a14df
Mise a jours du labyrinthe et augmentation du debogage graphique.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
salco 35:d81f6b927932 1 /**
salco 35:d81f6b927932 2 * @file labyrinthe.cpp
salco 35:d81f6b927932 3 * @brief Regroupement de fonction pour enregistrer le millieu en 2D.
salco 35:d81f6b927932 4 * @author Salco
salco 35:d81f6b927932 5 * @version 2.00
salco 35:d81f6b927932 6 * @date 11 mars 2015
salco 35:d81f6b927932 7 */
salco 28:ac5c6350ed9a 8 #include "labyrinthe.h"
salco 28:ac5c6350ed9a 9
salco 36:474d4795aafa 10 typedef Labyrinthe::coordoner_t coordonerr;
salco 36:474d4795aafa 11 typedef Labyrinthe::case_t case_t;
salco 28:ac5c6350ed9a 12
salco 28:ac5c6350ed9a 13 Labyrinthe::Labyrinthe()
salco 28:ac5c6350ed9a 14 {
salco 28:ac5c6350ed9a 15 direction=0;
salco 28:ac5c6350ed9a 16 mapDuLabyrinthe.clear();
salco 28:ac5c6350ed9a 17 addMap(0,0);
salco 36:474d4795aafa 18 m_posX=1;
salco 36:474d4795aafa 19 m_posY=1;
salco 28:ac5c6350ed9a 20 }
salco 28:ac5c6350ed9a 21
salco 28:ac5c6350ed9a 22 Labyrinthe::~Labyrinthe()
salco 28:ac5c6350ed9a 23 {
salco 28:ac5c6350ed9a 24 }
salco 28:ac5c6350ed9a 25
salco 36:474d4795aafa 26 coordonerr Labyrinthe::getCoordoner(char &x, char &y)
salco 28:ac5c6350ed9a 27 {
salco 36:474d4795aafa 28 coordonerr result = unset;
salco 28:ac5c6350ed9a 29 char newPosX,newPosY;
salco 36:474d4795aafa 30
salco 36:474d4795aafa 31 #ifdef DEGUG_LABIRINTH_GET_COORDONER
salco 36:474d4795aafa 32 debug("\n\r----------getCoordoner------\n\r");
salco 36:474d4795aafa 33 debug(" x: %i Y: %i\n\r",x,y);
salco 36:474d4795aafa 34 #endif
salco 36:474d4795aafa 35
salco 36:474d4795aafa 36
salco 36:474d4795aafa 37 newPosX = 3*((((signed)x<0)? x-2:x)/3); // je veux le nobre de fois quil a fait un tours et donc seulment les entier
salco 36:474d4795aafa 38 newPosY = 3*((((signed)y<0)? y-2:y)/3);
salco 36:474d4795aafa 39
salco 36:474d4795aafa 40 #ifdef DEGUG_LABIRINTH_GET_COORDONER
salco 36:474d4795aafa 41 debug(" newPosX: %i newPosY: %i\n\r",newPosX,newPosY);
salco 36:474d4795aafa 42 #endif
salco 28:ac5c6350ed9a 43
salco 36:474d4795aafa 44
salco 36:474d4795aafa 45
salco 36:474d4795aafa 46 switch(x - newPosX){
salco 36:474d4795aafa 47 case 0:
salco 36:474d4795aafa 48 switch(y - newPosY){
salco 36:474d4795aafa 49 case 0:
salco 36:474d4795aafa 50 result=C1;
salco 36:474d4795aafa 51 break;
salco 36:474d4795aafa 52
salco 36:474d4795aafa 53 case 1:
salco 36:474d4795aafa 54 result=C2;
salco 36:474d4795aafa 55 break;
salco 36:474d4795aafa 56
salco 36:474d4795aafa 57 case 2:
salco 36:474d4795aafa 58 result=C3;
salco 36:474d4795aafa 59 break;
salco 36:474d4795aafa 60 }
salco 36:474d4795aafa 61 break;
salco 36:474d4795aafa 62
salco 36:474d4795aafa 63 case 1:
salco 36:474d4795aafa 64 switch(y - newPosY){
salco 36:474d4795aafa 65 case 0:
salco 36:474d4795aafa 66 result=C4;
salco 36:474d4795aafa 67 break;
salco 36:474d4795aafa 68
salco 36:474d4795aafa 69 case 1:
salco 36:474d4795aafa 70 result=C5;
salco 36:474d4795aafa 71 break;
salco 36:474d4795aafa 72
salco 36:474d4795aafa 73 case 2:
salco 36:474d4795aafa 74 result=C6;
salco 36:474d4795aafa 75 break;
salco 36:474d4795aafa 76 }
salco 36:474d4795aafa 77 break;
salco 36:474d4795aafa 78
salco 36:474d4795aafa 79 case 2:
salco 36:474d4795aafa 80 switch(y - newPosY){
salco 36:474d4795aafa 81 case 0:
salco 36:474d4795aafa 82 result=C7;
salco 36:474d4795aafa 83 break;
salco 36:474d4795aafa 84
salco 36:474d4795aafa 85 case 1:
salco 36:474d4795aafa 86 result=C8;
salco 36:474d4795aafa 87 break;
salco 36:474d4795aafa 88
salco 36:474d4795aafa 89 case 2:
salco 36:474d4795aafa 90 result=C9;
salco 36:474d4795aafa 91 break;
salco 36:474d4795aafa 92 }
salco 36:474d4795aafa 93 break;
salco 36:474d4795aafa 94 }
salco 36:474d4795aafa 95
salco 28:ac5c6350ed9a 96 x = newPosX;
salco 28:ac5c6350ed9a 97 y = newPosY;
salco 36:474d4795aafa 98 /*result =(coordonerr)( 2 + newPosX);
salco 28:ac5c6350ed9a 99
salco 28:ac5c6350ed9a 100 switch(newPosY) {
salco 28:ac5c6350ed9a 101 case-1:
salco 28:ac5c6350ed9a 102 result = result + (3*2);
salco 28:ac5c6350ed9a 103 break;
salco 28:ac5c6350ed9a 104
salco 28:ac5c6350ed9a 105 case 0:
salco 28:ac5c6350ed9a 106 result = result + (3*1);
salco 28:ac5c6350ed9a 107 break;
salco 28:ac5c6350ed9a 108
salco 28:ac5c6350ed9a 109 case 1:
salco 28:ac5c6350ed9a 110 result = result + (3*0);
salco 28:ac5c6350ed9a 111 break;
salco 36:474d4795aafa 112 }*/
salco 36:474d4795aafa 113 #ifdef DEGUG_LABIRINTH_GET_COORDONER
salco 36:474d4795aafa 114 debug(" newPosX: %i newPosY: %i\n\r",newPosX,newPosY);
salco 36:474d4795aafa 115 //debug("\n\r result: X: %02d Y:%02d",newPosX,newPosY);
salco 36:474d4795aafa 116 debug("\n\r result: :%02d \n\r",result);
salco 36:474d4795aafa 117 debug("\n\r--------------------\n\r");
salco 36:474d4795aafa 118 #endif
salco 28:ac5c6350ed9a 119
salco 28:ac5c6350ed9a 120 return result;
salco 28:ac5c6350ed9a 121 }
salco 36:474d4795aafa 122 coordonerr Labyrinthe::getCoordoner(void)
salco 28:ac5c6350ed9a 123 {
salco 36:474d4795aafa 124 coordonerr result;
salco 36:474d4795aafa 125 char newPosX = m_posX;
salco 36:474d4795aafa 126 char newPosY = m_posY;
salco 36:474d4795aafa 127
salco 36:474d4795aafa 128 result = getCoordoner(newPosX,newPosY);
salco 28:ac5c6350ed9a 129
salco 28:ac5c6350ed9a 130 return result;
salco 28:ac5c6350ed9a 131 }
salco 28:ac5c6350ed9a 132
salco 35:d81f6b927932 133 string Labyrinthe::showMap(void)
salco 28:ac5c6350ed9a 134 {
salco 28:ac5c6350ed9a 135 return showMap(m_posX,m_posY);
salco 28:ac5c6350ed9a 136 }
salco 28:ac5c6350ed9a 137 string Labyrinthe::showMap(char x, char y)
salco 28:ac5c6350ed9a 138 {
salco 28:ac5c6350ed9a 139 //bool result=false;
salco 28:ac5c6350ed9a 140 string theMap;
salco 28:ac5c6350ed9a 141 theMap.clear();
salco 28:ac5c6350ed9a 142 /* char newPosX = x;
salco 28:ac5c6350ed9a 143 char newPosY = y;
salco 28:ac5c6350ed9a 144
salco 28:ac5c6350ed9a 145 getCoordoner(newPosX,newPosY);
salco 28:ac5c6350ed9a 146 unsigned char templateX,templateY;
salco 28:ac5c6350ed9a 147 for(int i=0; ((i*DEFAULTLABLEIGHT)<mapDuLabyrinthe.size()) && (!result);i++)
salco 28:ac5c6350ed9a 148 {
salco 28:ac5c6350ed9a 149 templateX = (mapDuLabyrinthe[(i*DEFAULTLABLEIGHT)])>>1;
salco 28:ac5c6350ed9a 150 templateY = ((mapDuLabyrinthe[(i*DEFAULTLABLEIGHT)])&1)<<7;
salco 28:ac5c6350ed9a 151 templateY += ((mapDuLabyrinthe[(i*DEFAULTLABLEIGHT)+1])>>2);
salco 28:ac5c6350ed9a 152
salco 28:ac5c6350ed9a 153 if((templateX == newPosX) && (templateY == newPosY))
salco 28:ac5c6350ed9a 154 {
salco 28:ac5c6350ed9a 155 result=true;
salco 28:ac5c6350ed9a 156 theMap.append(1,((mapDuLabyrinthe[(i*DEFAULTLABLEIGHT)+1])& 3));
salco 28:ac5c6350ed9a 157 }
salco 28:ac5c6350ed9a 158 }*/
salco 28:ac5c6350ed9a 159 int stringPosition = searchCoord(x,y);
salco 28:ac5c6350ed9a 160 if(stringPosition != -1) {
salco 28:ac5c6350ed9a 161 theMap.append(1,((mapDuLabyrinthe[(stringPosition)+1]>>0)& 3));
salco 28:ac5c6350ed9a 162 theMap.append(1,((mapDuLabyrinthe[(stringPosition)+2]>>6)& 3));
salco 28:ac5c6350ed9a 163 theMap.append(1,((mapDuLabyrinthe[(stringPosition)+2]>>4)& 3));
salco 28:ac5c6350ed9a 164
salco 28:ac5c6350ed9a 165 theMap.append(1,((mapDuLabyrinthe[(stringPosition)+2]>>2)& 3));
salco 28:ac5c6350ed9a 166 theMap.append(1,((mapDuLabyrinthe[(stringPosition)+2]>>0)& 3));
salco 28:ac5c6350ed9a 167 theMap.append(1,((mapDuLabyrinthe[(stringPosition)+3]>>6)& 3));
salco 28:ac5c6350ed9a 168
salco 28:ac5c6350ed9a 169 theMap.append(1,((mapDuLabyrinthe[(stringPosition)+3]>>4)& 3));
salco 28:ac5c6350ed9a 170 theMap.append(1,((mapDuLabyrinthe[(stringPosition)+3]>>2)& 3));
salco 28:ac5c6350ed9a 171 theMap.append(1,((mapDuLabyrinthe[(stringPosition)+3]>>0)& 3));
salco 28:ac5c6350ed9a 172 }
salco 35:d81f6b927932 173
salco 35:d81f6b927932 174 #ifdef DEBUG_BOOT_GRAPHICAL_INTERFACE
salco 35:d81f6b927932 175 debug("\n\r----------showmap------\n\r");
salco 35:d81f6b927932 176 debug(" map size: %i \n\r",mapDuLabyrinthe.size());
salco 35:d81f6b927932 177 debug(" stringPosition: %i \n\r",stringPosition);
salco 35:d81f6b927932 178 if(stringPosition != -1) {
salco 36:474d4795aafa 179 debug(" (mapDuLabyrinthe[(stringPosition)+1]>>0): %i &3== %i \n\r",(mapDuLabyrinthe[(stringPosition)+1]>>0),((mapDuLabyrinthe[(stringPosition)+1]>>0)& 3)); //c1
salco 36:474d4795aafa 180 debug(" (mapDuLabyrinthe[(stringPosition)+2]>>6): %i &3== %i \n\r",(mapDuLabyrinthe[(stringPosition)+2]>>6),((mapDuLabyrinthe[(stringPosition)+2]>>6)& 3)); //c2
salco 36:474d4795aafa 181 debug(" (mapDuLabyrinthe[(stringPosition)+2]>>4): %i &3== %i \n\r",(mapDuLabyrinthe[(stringPosition)+2]>>4),((mapDuLabyrinthe[(stringPosition)+2]>>4)& 3)); //c3
salco 35:d81f6b927932 182 debug(" \n\r");
salco 36:474d4795aafa 183 debug(" (mapDuLabyrinthe[(stringPosition)+2]>>2): %i &3== %i \n\r",(mapDuLabyrinthe[(stringPosition)+2]>>2),((mapDuLabyrinthe[(stringPosition)+2]>>2)& 3)); //c4
salco 36:474d4795aafa 184 debug(" (mapDuLabyrinthe[(stringPosition)+2]>>0): %i &3== %i \n\r",(mapDuLabyrinthe[(stringPosition)+2]>>0),((mapDuLabyrinthe[(stringPosition)+2]>>0)& 3)); //c5
salco 36:474d4795aafa 185 debug(" (mapDuLabyrinthe[(stringPosition)+3]>>6): %i &3== %i \n\r",(mapDuLabyrinthe[(stringPosition)+3]>>6),((mapDuLabyrinthe[(stringPosition)+3]>>6)& 3)); //c6
salco 35:d81f6b927932 186 debug(" \n\r");
salco 36:474d4795aafa 187 debug(" (mapDuLabyrinthe[(stringPosition)+3]>>4): %i &3== %i \n\r",(mapDuLabyrinthe[(stringPosition)+3]>>4),((mapDuLabyrinthe[(stringPosition)+3]>>4)& 3)); //c7
salco 36:474d4795aafa 188 debug(" (mapDuLabyrinthe[(stringPosition)+3]>>2): %i &3== %i \n\r",(mapDuLabyrinthe[(stringPosition)+3]>>2),((mapDuLabyrinthe[(stringPosition)+3]>>2)& 3)); //c8
salco 36:474d4795aafa 189 debug(" (mapDuLabyrinthe[(stringPosition)+3]>>0): %i &3== %i \n\r",(mapDuLabyrinthe[(stringPosition)+3]>>0),((mapDuLabyrinthe[(stringPosition)+3]>>0)& 3)); //c9
salco 35:d81f6b927932 190 debug(" \n\r");
salco 35:d81f6b927932 191 }
salco 35:d81f6b927932 192 debug("\n\r----------------------\n\r");
salco 35:d81f6b927932 193 #endif
salco 28:ac5c6350ed9a 194 return theMap;
salco 28:ac5c6350ed9a 195 }
salco 28:ac5c6350ed9a 196
salco 28:ac5c6350ed9a 197 bool Labyrinthe::updateMap(string mapUpdated)
salco 28:ac5c6350ed9a 198 {
salco 28:ac5c6350ed9a 199 return updateMap(mapUpdated,m_posX,m_posY);
salco 28:ac5c6350ed9a 200 }
salco 28:ac5c6350ed9a 201 bool Labyrinthe::updateMap(string mapUpdated,char x, char y)
salco 28:ac5c6350ed9a 202 {
salco 28:ac5c6350ed9a 203 bool result = true;
salco 28:ac5c6350ed9a 204 int stringPosition = searchCoord(x,y);
salco 28:ac5c6350ed9a 205
salco 28:ac5c6350ed9a 206 if(stringPosition == -1)
salco 28:ac5c6350ed9a 207 result= false;
salco 28:ac5c6350ed9a 208 else {
salco 36:474d4795aafa 209 mapDuLabyrinthe[(stringPosition)+1] = ((mapDuLabyrinthe[(stringPosition)+1]) & 0xFC) | ((mapUpdated[0] &0x03)<<0);
salco 36:474d4795aafa 210 mapDuLabyrinthe[(stringPosition)+2] = ((mapDuLabyrinthe[(stringPosition)+2]) & 0x3F) | ((mapUpdated[1] &0x03)<<6);
salco 28:ac5c6350ed9a 211 mapDuLabyrinthe[(stringPosition)+2] = ((mapDuLabyrinthe[(stringPosition)+2]) & 0xCF) | ((mapUpdated[2] &0x03)<<4);
salco 28:ac5c6350ed9a 212
salco 28:ac5c6350ed9a 213 mapDuLabyrinthe[(stringPosition)+2] = ((mapDuLabyrinthe[(stringPosition)+2]) & 0xF3) | ((mapUpdated[3] &0x03)<<2);
salco 28:ac5c6350ed9a 214 mapDuLabyrinthe[(stringPosition)+2] = ((mapDuLabyrinthe[(stringPosition)+2]) & 0xFC) | ((mapUpdated[4] &0x03)<<0);
salco 28:ac5c6350ed9a 215 mapDuLabyrinthe[(stringPosition)+2] = ((mapDuLabyrinthe[(stringPosition)+3]) & 0x3F) | ((mapUpdated[5] &0x03)<<6);
salco 28:ac5c6350ed9a 216
salco 28:ac5c6350ed9a 217 mapDuLabyrinthe[(stringPosition)+2] = ((mapDuLabyrinthe[(stringPosition)+2]) & 0xCF) | ((mapUpdated[6] &0x03)<<4);
salco 28:ac5c6350ed9a 218 mapDuLabyrinthe[(stringPosition)+2] = ((mapDuLabyrinthe[(stringPosition)+2]) & 0xF3) | ((mapUpdated[7] &0x03)<<2);
salco 28:ac5c6350ed9a 219 mapDuLabyrinthe[(stringPosition)+2] = ((mapDuLabyrinthe[(stringPosition)+2]) & 0xFC) | ((mapUpdated[8] &0x03)<<0);
salco 28:ac5c6350ed9a 220 }
salco 28:ac5c6350ed9a 221
salco 28:ac5c6350ed9a 222
salco 28:ac5c6350ed9a 223 return result;
salco 28:ac5c6350ed9a 224 }
salco 28:ac5c6350ed9a 225 bool Labyrinthe::addMap(char x, char y)
salco 28:ac5c6350ed9a 226 {
salco 28:ac5c6350ed9a 227 bool result = true;
salco 28:ac5c6350ed9a 228 x &= 0x7F; // on coupe le 8eme bit
salco 35:d81f6b927932 229 y &= 0x7F; //
salco 28:ac5c6350ed9a 230
salco 35:d81f6b927932 231 mapDuLabyrinthe.append(1,((x<<1) | (y>>6)) );//x7,x6,x5,x4,x3,x2,x1,y7
salco 35:d81f6b927932 232 mapDuLabyrinthe.append(1,y<<1); //y6,y5,y4,y3,y2,y1,[C1],[C1]
salco 35:d81f6b927932 233 mapDuLabyrinthe.append(2,0); //add C2-C9 vide
salco 35:d81f6b927932 234
salco 35:d81f6b927932 235 #ifdef DEBUG_LABYRINTHE_ADD_MAP
salco 35:d81f6b927932 236 debug("----addMap----\n\r");
salco 35:d81f6b927932 237 debug("x = %i \n\r",x);
salco 35:d81f6b927932 238 debug("y = %i \n\r",y);
salco 35:d81f6b927932 239 debug("((x<<1) | (y>>6)) = %i \n\r",((x<<1) | (y>>6)));
salco 35:d81f6b927932 240 debug("-------------\n\r");
salco 35:d81f6b927932 241 #endif
salco 28:ac5c6350ed9a 242
salco 28:ac5c6350ed9a 243 return result;
salco 28:ac5c6350ed9a 244 }
salco 28:ac5c6350ed9a 245
salco 36:474d4795aafa 246 //renvoi l'ID du 4 byte de la tuile dans le string
salco 28:ac5c6350ed9a 247 int Labyrinthe::searchCoord(char posX,char posY)
salco 28:ac5c6350ed9a 248 {
salco 28:ac5c6350ed9a 249 bool result=false;
salco 36:474d4795aafa 250 char newPosX = posX;
salco 36:474d4795aafa 251 char newPosY = posY;
salco 36:474d4795aafa 252 unsigned char templateX = 0;
salco 36:474d4795aafa 253 unsigned char templateY = 0;
salco 36:474d4795aafa 254 int i=0;
salco 28:ac5c6350ed9a 255 //string theMap;
salco 28:ac5c6350ed9a 256 //theMap.clear();
salco 35:d81f6b927932 257 debug(DEBUGLABSEARCHCOORD,"------Search coord------");
salco 35:d81f6b927932 258 debug(DEBUGLABSEARCHCOORD," posX: %i posY: %i \n\r",posX,posY);
salco 35:d81f6b927932 259
salco 36:474d4795aafa 260
salco 28:ac5c6350ed9a 261 getCoordoner(newPosX,newPosY);
salco 35:d81f6b927932 262 debug(DEBUGLABSEARCHCOORD," new posX: %i new posY: %i \n\r",newPosX,newPosY);
salco 36:474d4795aafa 263
salco 35:d81f6b927932 264 debug(DEBUGLABSEARCHCOORD," map size: %i \n\r",mapDuLabyrinthe.size());
salco 36:474d4795aafa 265
salco 35:d81f6b927932 266 for( ; ((i*DEFAULTLABLEIGHT) < mapDuLabyrinthe.size()) && (!result); i++) {
salco 35:d81f6b927932 267
salco 28:ac5c6350ed9a 268 templateX = (mapDuLabyrinthe[(i*DEFAULTLABLEIGHT)])>>1;
salco 36:474d4795aafa 269 templateY = (((mapDuLabyrinthe[(i*DEFAULTLABLEIGHT)])&1)<<7) | ((mapDuLabyrinthe[(i*DEFAULTLABLEIGHT)+1])>>2);
salco 36:474d4795aafa 270 //templateY += ((mapDuLabyrinthe[(i*DEFAULTLABLEIGHT)+1])>>2);
salco 28:ac5c6350ed9a 271
salco 28:ac5c6350ed9a 272 if((templateX == newPosX) && (templateY == newPosY)) {
salco 28:ac5c6350ed9a 273 result=true;
salco 28:ac5c6350ed9a 274 //theMap.append(1,((mapDuLabyrinthe[(i*DEFAULTLABLEIGHT)+1])& 3));
salco 28:ac5c6350ed9a 275 }
salco 28:ac5c6350ed9a 276 }
salco 36:474d4795aafa 277 i--;
salco 35:d81f6b927932 278 debug(DEBUGLABSEARCHCOORD," templateX: %i \n\r",templateX);
salco 35:d81f6b927932 279 debug(DEBUGLABSEARCHCOORD," templateY: %i \n\r",templateY);
salco 36:474d4795aafa 280 debug(DEBUGLABSEARCHCOORD," result: %i \n\r",result?1:0);
salco 36:474d4795aafa 281 debug(DEBUGLABSEARCHCOORD," i*DEFAULTLABLEIGHT: %i \n\r",i*DEFAULTLABLEIGHT);
salco 35:d81f6b927932 282 debug(DEBUGLABSEARCHCOORD,"--------------------");
salco 36:474d4795aafa 283 return (result==false? -1:i*DEFAULTLABLEIGHT);
salco 28:ac5c6350ed9a 284 }
salco 28:ac5c6350ed9a 285
salco 36:474d4795aafa 286 case_t Labyrinthe::getC(coordonerr cX)
salco 28:ac5c6350ed9a 287 {
salco 28:ac5c6350ed9a 288 return getC(m_posX, m_posY, cX);
salco 28:ac5c6350ed9a 289 }
salco 36:474d4795aafa 290 /**
salco 36:474d4795aafa 291 * @param x position X.
salco 36:474d4795aafa 292 * @param y position Y.
salco 36:474d4795aafa 293 * @return
salco 36:474d4795aafa 294 */
salco 36:474d4795aafa 295 case_t Labyrinthe::getC(char x, char y)
salco 28:ac5c6350ed9a 296 {
salco 28:ac5c6350ed9a 297 char newPosX = x;
salco 28:ac5c6350ed9a 298 char newPosY = y;
salco 36:474d4795aafa 299 coordonerr maCoordoner;
salco 28:ac5c6350ed9a 300 maCoordoner=getCoordoner(newPosX,newPosY);
salco 28:ac5c6350ed9a 301
salco 28:ac5c6350ed9a 302 return getC(x, y, maCoordoner);
salco 28:ac5c6350ed9a 303 }
salco 36:474d4795aafa 304
salco 36:474d4795aafa 305 case_t Labyrinthe::getC(char x, char y, coordonerr cX)
salco 28:ac5c6350ed9a 306 {
salco 28:ac5c6350ed9a 307 char myCoordoner = 0xFF;
salco 28:ac5c6350ed9a 308 string result = showMap(x,y);
salco 28:ac5c6350ed9a 309 if(result.size() != 0) {
salco 28:ac5c6350ed9a 310 myCoordoner= result[cX];
salco 28:ac5c6350ed9a 311 }
salco 36:474d4795aafa 312 return (case_t)myCoordoner;
salco 28:ac5c6350ed9a 313 }
salco 36:474d4795aafa 314 void Labyrinthe::setC(case_t value, char x, char y, coordonerr cX)
salco 28:ac5c6350ed9a 315 {
salco 36:474d4795aafa 316 #ifdef DEGUG_LABIRINTH_SET_COORDONER
salco 36:474d4795aafa 317 debug("------SetC coord------");
salco 36:474d4795aafa 318 #endif
salco 28:ac5c6350ed9a 319 string result = showMap(x,y);
salco 28:ac5c6350ed9a 320 if(result.size() != 0) {
salco 36:474d4795aafa 321 result[cX-1]=value;
salco 36:474d4795aafa 322
salco 36:474d4795aafa 323
salco 36:474d4795aafa 324 #ifdef DEGUG_LABIRINTH_SET_COORDONER
salco 36:474d4795aafa 325 debug("\n\r Labyrinthe map: X:%02x Y:%02x \n\r",x,y);
salco 36:474d4795aafa 326 debug("value: %i\n\r",value);
salco 36:474d4795aafa 327 debug("coordoner: %i\n\r",cX);
salco 36:474d4795aafa 328 for(int i=0; i<3; i++) debug(" [%02X] ",result[i+6]);
salco 36:474d4795aafa 329 debug("\n\r");
salco 36:474d4795aafa 330 for(int i=0; i<3; i++) debug(" [%02X] ",result[i+3]);
salco 36:474d4795aafa 331 debug("\n\r");
salco 36:474d4795aafa 332 for(int i=0; i<3; i++) debug(" [%02X] ",result[i]);
salco 36:474d4795aafa 333 debug("\n\r");
salco 36:474d4795aafa 334 #endif
salco 36:474d4795aafa 335
salco 36:474d4795aafa 336 updateMap(result,x,y);
salco 36:474d4795aafa 337
salco 36:474d4795aafa 338 #ifdef DEGUG_LABIRINTH_SET_COORDONER
salco 36:474d4795aafa 339 debug("---------------------");
salco 36:474d4795aafa 340 #endif
salco 28:ac5c6350ed9a 341 }
salco 28:ac5c6350ed9a 342 }
salco 36:474d4795aafa 343 void Labyrinthe::setC(case_t value, coordonerr cX)
salco 28:ac5c6350ed9a 344 {
salco 28:ac5c6350ed9a 345 setC(value,m_posX, m_posY,cX);
salco 28:ac5c6350ed9a 346 }
salco 36:474d4795aafa 347 void Labyrinthe::setC(case_t value, char x, char y)
salco 28:ac5c6350ed9a 348 {
salco 28:ac5c6350ed9a 349 char newPosX = x;
salco 28:ac5c6350ed9a 350 char newPosY = y;
salco 36:474d4795aafa 351 coordonerr maCoordoner;
salco 28:ac5c6350ed9a 352 maCoordoner=getCoordoner(newPosX,newPosY);
salco 28:ac5c6350ed9a 353
salco 28:ac5c6350ed9a 354 setC(value,x,y,maCoordoner);
salco 28:ac5c6350ed9a 355 }
salco 36:474d4795aafa 356 void Labyrinthe::setC_Up(case_t value)
salco 28:ac5c6350ed9a 357 {
salco 28:ac5c6350ed9a 358 setC(value,m_posX, m_posY+1);
salco 28:ac5c6350ed9a 359 }
salco 36:474d4795aafa 360 void Labyrinthe::setC_Down(case_t value)
salco 28:ac5c6350ed9a 361 {
salco 28:ac5c6350ed9a 362 setC(value,m_posX, m_posY-1);
salco 28:ac5c6350ed9a 363 }
salco 36:474d4795aafa 364 void Labyrinthe::setC_Left(case_t value)
salco 28:ac5c6350ed9a 365 {
salco 28:ac5c6350ed9a 366 setC(value,m_posX-1, m_posY);
salco 28:ac5c6350ed9a 367 }
salco 36:474d4795aafa 368 void Labyrinthe::setC_Right(case_t value)
salco 28:ac5c6350ed9a 369 {
salco 28:ac5c6350ed9a 370 setC(value,m_posX+1, m_posY);
salco 35:d81f6b927932 371 }
salco 36:474d4795aafa 372 void Labyrinthe::setMyPos(case_t value)
salco 35:d81f6b927932 373 {
salco 35:d81f6b927932 374 setC(value, m_posX, m_posY);
salco 28:ac5c6350ed9a 375 }