Alexandre Salconi-Denis
/
ProjetOctopode
Programme de contrôle de l'octopode 4DOF, Theraphosa-Salconi.
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
Diff: directive.cpp
- Revision:
- 28:ac5c6350ed9a
- Parent:
- 27:ea60d12dccdf
- Child:
- 31:ed23647fd16e
--- a/directive.cpp Thu May 14 21:40:23 2015 +0000 +++ b/directive.cpp Tue Jul 28 01:22:16 2015 +0000 @@ -1,24 +1,64 @@ #include "directive.h" +int tabIR[12][2]= { + {80, 400},{50, 600},{40, 700},{30, 900},{25,1100}, + {20,1300},{15,1600},{10,2400},{ 8,2700},{ 7,3000}, + { 6,3200},{ 5,3100} +}; + + + + + Directive::Directive():TTask(0)//on veux que cette tache sois exec toute les fois que TTaskGen sexecute. { - c=0; + /* initialize random seed: */ + srand (time(NULL)); + + myMaze->setDirection(UP); + //c=0; ssc32 = new /*Serial*//*Raw*/Serial/*(USBTX, USBRX);*/(PB_6, PB_7);//(PA_9, PA_10); ctrDesPattes = new Faculter_motrice(ssc32/*pc*/); + m_valueCapteurUltrasonic = 0; + m_valueCapteurIR = 0; + m_valueCapteurProximiter = 0; + for(int i =0; i<10; i++)tableauDeCommange[i]= 0; + size_tableauDeCommange=0; + myMaze->setC(EXPLORER,C5); //m_CtrlBridge = m_CtrlBridge->getInstance(); //a enlever de commentaire//m_ListDesModules = m_CtrlBridge->findModule(0,1,0,0); //Serial pc(USBTX, USBRX); //ssc32->set_flow_control(0); + + myMaze = new Labyrinthe(); debug("\n\r directive Init");//printf("Hello World\n"); m_ListDesModules = m_CtrlBridge->findModule(0,CAPTEUR,DISTANCE,0); m_ListDesModules.append(m_CtrlBridge->findModule(0,CAPTEUR,PROXIMITEE,0)); - + m_capteurUltrasonic= m_CtrlBridge->findModule(0,CAPTEUR,ULTRASONIQUE,0x27/*0b100111*/); + if(!(m_capteurUltrasonic.empty()))debug(DEBUG_DIRECTIVE_TEST,"\n\r m_capteurUltrasonic found"); + else debug(DEBUG_DIRECTIVE_TEST,"\n\r m_capteurUltrasonic not found"); m_capteurIR= m_CtrlBridge->findModule(0,CAPTEUR,DISTANCE,0x27/*0b100111*/); + if(!(m_capteurIR.empty()))debug(DEBUG_DIRECTIVE_TEST,"\n\r m_capteurIR found"); + else debug(DEBUG_DIRECTIVE_TEST,"\n\r m_capteurIR not found"); m_capteurProximiter= m_CtrlBridge->findModule(0,CAPTEUR,PROXIMITEE,0x0E/*0b001110*/); + if(!(m_capteurProximiter.empty()))debug(DEBUG_DIRECTIVE_TEST,"\n\r m_capteurProximiter found"); + else debug(DEBUG_DIRECTIVE_TEST,"\n\r m_capteurProximiter not found"); + + ctrDesPattes->moveUp(); + + bool getUp=true; + while((getUp)&& (! ctrDesPattes->isSeqComplet())) { + ctrDesPattes->exec(); + + if(ctrDesPattes->get_idFrame() >= 5) + getUp = false; + + } + ctrDesPattes->calibre(); } Directive::~Directive() { @@ -27,43 +67,580 @@ delete ctrDesPattes; if(ssc32) delete ssc32; + if(myMaze) + delete myMaze; } void Directive::task(void)//ALL CODE HERE// { - debug(DEBUG_DIRECTIVE_TEST,"\n\rIn task directive"); - //pas sur que c'Est tout ce qui doit etre ici mais je vois pas quoi d'autre pour le moment. - string flag,data; + //debug(DEBUG_DIRECTIVE_TEST,"\n\rIn task directive"); + if(ctrDesPattes->isSeqComplet()) { + if((tableauDeCommange[0] == 6) && (size_tableauDeCommange == 1)) { + //addTableauDeCommande(0x81); + //addTableauDeCommande(0x82); + //mabey//addTableauDeCommande(0x83); + addTableauDeCommande(0x84); + + //addTableauDeCommande(0x85); + //mabey//addTableauDeCommande(0x86); + addTableauDeCommande(0x87); + addTableauDeCommande(0x88); + } + if(tableauDeCommange[0] == 0) { + //pas sur que c'Est tout ce qui doit etre ici mais je vois pas quoi d'autre pour le moment. + + //////////////// + // Inspection // + //////////////// + //flag.append(1,0);//0x02); + /*for(int i=0; i<m_ListDesModules.length(); ++i) { + wait_us(300); + flag.clear(); + flag.append(1,7); + data.clear(); + debug("\n\r result: %d",m_CtrlBridge->send(m_ListDesModules.at(i),flag,data)); + + debug("\n\r flag: %d",flag[0]); + debug("\n\r data: %x",data[0]); + }*/ + #ifndef BACKUP + updateModuleValue(); + + ////////////////////////////// + // Traitement du Labyrinthe // + ////////////////////////////// + debug(DEBUG_DIRECTIVE_TEST,"\n\r -IRToCm(%02f): %02f",ADCTomv(m_valueCapteurIR),IRToCm(ADCTomv(m_valueCapteurIR))); + debug(DEBUG_DIRECTIVE_TEST,"\n\r -ultrasonicToInch: %02f",ultrasonicToInch(m_valueCapteurUltrasonic)); + debug(DEBUG_DIRECTIVE_TEST,"\n\r -m_valueCapteurProximiter: %02d",m_valueCapteurProximiter); + + analiseMaze(); + char nextCase=0; + switch(myMaze->getDirection()) + { + case UP: + nextCase = myMaze->getC(myMaze->getX(),myMaze->getY()+1); + break; + + case DOWN: + nextCase = myMaze->getC(myMaze->getX(),myMaze->getY()-1); + break; + + case LEFT: + nextCase = myMaze->getC(myMaze->getX()-1,myMaze->getY()); + break; + + case RIGHT: + nextCase = myMaze->getC(myMaze->getX()+1,myMaze->getY()); + break; + } + + switch(nextCase ) + { + case VIDE: + debug(DEBUG_DIRECTIVE_TEST," Javance"); + addTableauDeCommande(6); + break; + + case EXPLORER:// ici pt amiliorer + debug(DEBUG_DIRECTIVE_TEST," Javance"); + addTableauDeCommande(6); + break; + + case MUR: + + switch(myMaze->getDirection()) + { + case UP: + if(rand()%1){ + nextCase = myMaze->getC(myMaze->getX()-1,myMaze->getY()); + if(nextCase != MUR) + { + + } + nextCase = myMaze->getC(myMaze->getX()+1,myMaze->getY()); + } + else{ + nextCase = myMaze->getC(myMaze->getX()+1,myMaze->getY()+1); + } + break; + + case DOWN: + nextCase = myMaze->getC(myMaze->getX(),myMaze->getY()-1); + break; + + case LEFT: + nextCase = myMaze->getC(myMaze->getX()-1,myMaze->getY()); + break; + + case RIGHT: + nextCase = myMaze->getC(myMaze->getX()+1,myMaze->getY()); + break; + } + + break; + + case PAS_EXPLORER: + debug(DEBUG_DIRECTIVE_TEST," Javance"); + addTableauDeCommande(6); + break; + } + + #endif + #if BACKUP + /*if((ultrasonicToInch(m_valueCapteurUltrasonic)< 1) && (IRToCm(ADCTomv(m_valueCapteurIR)) <= 80)) //capteur ultrasson embrouiller/imprecis + { + debug(DEBUG_DIRECTIVE_TEST,"\n\r -Capteur Ultrasson brouiller"); + addTableauDeCommande(6); + } + else if(ultrasonicToInch(m_valueCapteurUltrasonic) < 10) { //plus proche que 10pouce + debug(DEBUG_DIRECTIVE_TEST,"\n\r -Objet proche"); + if(IRToCm(ADCTomv(m_valueCapteurIR)) <= 10) { + debug(DEBUG_DIRECTIVE_TEST,"\n\r -Confirmation IR"); + addTableauDeCommande(7); + - //////////////// - // Inspection // - //////////////// - flag.append(1,0);//0x02); - for(int i=0; i<m_ListDesModules.length(); ++i) - { - wait_us(300); - flag.clear(); - flag.append(1,7); - data.clear(); - debug("\n\r result: %d",m_CtrlBridge->send(m_ListDesModules.at(i),flag,data)); - - debug("\n\r flag: %d",flag[0]); - debug("\n\r data: %x",data[0]); + //ici potentielle scaning + } else { + addTableauDeCommande(4); + addTableauDeCommande(4); + addTableauDeCommande(4); + } + } else { + debug(DEBUG_DIRECTIVE_TEST,"\n\r -Nothing:"); + addTableauDeCommande(6); + + + int randomNbr = rand() % 4; + switch(randomNbr) + { + case 1: + debug(DEBUG_DIRECTIVE_TEST," Javance"); + addTableauDeCommande(6); + break; + case 2: + debug(DEBUG_DIRECTIVE_TEST," Je tourne a gauche"); + addTableauDeCommande(4); + break; + case 3: + debug(DEBUG_DIRECTIVE_TEST," Je tourne a droite"); + addTableauDeCommande(5); + break; + default: + debug(DEBUG_DIRECTIVE_TEST," Jattend"); + break; + } + + + //addTableauDeCommande(6); + }*/ + #endif + /////////////// + // Mouvement // + /////////////// + } else { + switch(tableauDeCommange[0]) { + case 11: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_calibre"); + ctrDesPattes->calibre(); + break; + case 2: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_moveUp"); + ctrDesPattes->moveUp(); + break; + case 3: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_moveDown"); + ctrDesPattes->moveDown(); + break; + case 4: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_turnLeft"); + ctrDesPattes->turnLeft(); + break; + case 5: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_trunRight"); + ctrDesPattes->trunRight(); + break; + case 6: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_moveFront"); + ctrDesPattes->moveFront(); + break; + case 7: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_moveBack"); + ctrDesPattes->moveBack(); + break; + /*case 8: + ctrDesPattes->moveBack(); + break;*/ + case 0x81: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 1"); + ctrDesPattes->repositioner(1); + break; + case 0x82: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 2"); + ctrDesPattes->repositioner(2); + break; + case 0x83: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 3"); + ctrDesPattes->repositioner(3); + break; + case 0x84: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 4"); + ctrDesPattes->repositioner(4); + break; + case 0x85: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 5"); + ctrDesPattes->repositioner(5); + break; + case 0x86: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 6"); + ctrDesPattes->repositioner(6); + break; + case 0x87: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 7"); + ctrDesPattes->repositioner(7); + break; + case 0x88: + debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 8"); + ctrDesPattes->repositioner(8); + break; + } + debug(DEBUG_DIRECTIVE_TEST,"\n\r -TAB:"); + for(int i =0; i<10; i++) debug(DEBUG_DIRECTIVE_TEST,"[%02x]",tableauDeCommange[i]); + for(int i =0; i<9; i++)tableauDeCommange[i]= tableauDeCommange[i+1]; + tableauDeCommange[9]=0; + if(size_tableauDeCommange != 0) size_tableauDeCommange--; + } + } else { + ctrDesPattes->exec(); + } + //////////////////// + // Update memoire // + //////////////////// + + //////////// + // Autre? // + //////////// + + + //debug(DEBUG_DIRECTIVE_TEST,"\n\rOut task directive"); +} +double Directive::IRToCm (double miliVolt) +{ + double result=0; + + if(miliVolt < tabIR[0][1])result = tabIR[0][0]; + else if(miliVolt > tabIR[11][1])result = tabIR[11][0]; + + for(int i =1; (result==0)&&(i<12); i++) { + if((tabIR[i-1][1]<=miliVolt) && (tabIR[i][1]>miliVolt)) { + result=tabIR[i-1][0]+((tabIR[i][0]-tabIR[i-1][0])*((tabIR[i-1][1]-miliVolt)/(tabIR[i-1][1]-tabIR[i][1]))); + } + } + return result; +} +void Directive::addTableauDeCommande(unsigned char value) +{ + if(size_tableauDeCommange!=10) { + tableauDeCommange[size_tableauDeCommange]=value; + size_tableauDeCommange++; + + } +} + +void Directive::updateModuleValue(void) +{ + string flag,data; + flag.clear(); + data.clear(); + flag.append(1,7); + if(m_CtrlBridge->send(m_capteurUltrasonic[0],flag,data)) + m_valueCapteurUltrasonic = data[0]; + + + flag.clear(); + data.clear(); + flag.append(1,7); + if(m_CtrlBridge->send(m_capteurIR[0],flag,data)) { + if(data.size() == 2) { + m_valueCapteurIR = data[0]; + m_valueCapteurIR = (m_valueCapteurIR<<8) + data[1]; + } else + m_valueCapteurIR = data[0]; + } + + flag.clear(); + data.clear(); + flag.append(1,7); + if(m_CtrlBridge->send(m_capteurProximiter[0],flag,data)) + m_valueCapteurProximiter = data[0]; +} + +void Directive::analiseMaze(void) +{ + char areaLatt =0; + char areaVert =0; + string mymap = myMaze->showMap(); + debug(DEBUG_DIRECTIVE_LABYRINTH,"\n\r Labyrinthe map: X:%02x Y:%02x \n\r",myMaze->getX(),myMaze->getY()); + for(int i=0;i<3;i++) debug(DEBUG_DIRECTIVE_LABYRINTH," [%02X] ",mymap[i]); + debug(DEBUG_DIRECTIVE_LABYRINTH,"\n\r"); + for(int i=0;i<3;i++) debug(DEBUG_DIRECTIVE_LABYRINTH," [%02X] ",mymap[i+3]); + debug(DEBUG_DIRECTIVE_LABYRINTH,"\n\r"); + for(int i=0;i<3;i++) debug(DEBUG_DIRECTIVE_LABYRINTH," [%02X] ",mymap[i+6]); + debug(DEBUG_DIRECTIVE_LABYRINTH,"\n\r"); - } - ////////////////////////////// - // Traitement du Labyrinthe // - ////////////////////////////// + + + if((ultrasonicToInch(m_valueCapteurUltrasonic)< 1) && (IRToCm(ADCTomv(m_valueCapteurIR)) <= 80)) //capteur ultrasson embrouiller/imprecis + { + debug(DEBUG_DIRECTIVE_TEST,"\n\r -Capteur Ultrasson brouiller"); + //addTableauDeCommande(6); + } + else if(ultrasonicToInch(m_valueCapteurUltrasonic) >=24) { //plus proche que 10pouce + debug(DEBUG_DIRECTIVE_TEST,"\n\r -Objet proche 2pi"); + areaLatt =2; + areaVert =2; + } + else if(ultrasonicToInch(m_valueCapteurUltrasonic) >=12) { //plus proche que 10pouce + debug(DEBUG_DIRECTIVE_TEST,"\n\r -Objet proche 2pi"); + areaLatt =1; + areaVert =1; + } + if(IRToCm(ADCTomv(m_valueCapteurIR)) <= 60) { + debug(DEBUG_DIRECTIVE_TEST,"\n\r -Confirmation IR"); + areaVert =2; + } + else if(IRToCm(ADCTomv(m_valueCapteurIR)) <= 30) { + debug(DEBUG_DIRECTIVE_TEST,"\n\r -Confirmation IR"); + areaVert =1; + } + - /////////////// -// Mouvement // -/////////////// - // ctrDesPattes.exec(); -//////////////////// -// Update memoire // -//////////////////// - -//////////// -// Autre? // -//////////// - debug(DEBUG_DIRECTIVE_TEST,"\n\rOut task directive"); + switch(myMaze->getDirection()){ + case UP: + switch(areaVert) + { + case 0: + myMaze->setC_Up(MUR); + break; + + case 1: + if(areaLatt == 0){ + myMaze->setC_Up(MUR); + } + else if(areaLatt == 1){ + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+1); + myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()+1); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+1); + + myMaze->setC(MUR,myMaze->getX(),myMaze->getY()+2); + } + else if(areaLatt == 2){ + + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+1); + myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()+1); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+1); + + myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+2); + myMaze->setC(MUR,myMaze->getX(),myMaze->getY()+2); + myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+2); + } + break; + + case 2: + if(areaLatt == 0){ + myMaze->setC_Up(MUR); + } + else if(areaLatt == 1){ + myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+1);//mur? + myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()+1); + myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+1);//mur? + + //myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+1);//mur? + myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()+2); + //myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+1);//mur? + } + else if(areaLatt == 2){ + + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+1); + myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()+1); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+1); + + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+2); + myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()+2); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+2); + } + break; + } + + break; + + case DOWN: + switch(areaVert) + { + case 0: + myMaze->setC_Down(MUR); + break; + + case 1: + if(areaLatt == 0){ + myMaze->setC_Down(MUR); + } + else if(areaLatt == 1){ + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-1); + myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()-1); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-1); + + myMaze->setC(MUR,myMaze->getX(),myMaze->getY()-2); + } + else if(areaLatt == 2){ + + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-1); + myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()-1); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-1); + + myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()-2); + myMaze->setC(MUR,myMaze->getX(),myMaze->getY()-2); + myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()-2); + } + break; + + case 2: + if(areaLatt == 0){ + myMaze->setC_Down(MUR); + } + else if(areaLatt == 1){ + myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()-1);//mur? + myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()-1); + myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()-1);//mur? + + //myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+1);//mur? + myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()-2); + //myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+1);//mur? + } + else if(areaLatt == 2){ + + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-1); + myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()-1); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-1); + + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-2); + myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()-2); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-2); + } + break; + } + break; + + case LEFT: + switch(areaVert) + { + case 0: + myMaze->setC_Left(MUR); + break; + + case 1: + if(areaLatt == 0){ + myMaze->setC_Left(MUR); + } + else if(areaLatt == 1){ + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-1); + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()); + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+1); + + myMaze->setC(MUR,myMaze->getX()-2,myMaze->getY()); + } + else if(areaLatt == 2){ + + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-1); + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()); + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+1); + + myMaze->setC(PAS_EXPLORER,myMaze->getX()-2,myMaze->getY()-1); + myMaze->setC(MUR,myMaze->getX()-2,myMaze->getY()); + myMaze->setC(PAS_EXPLORER,myMaze->getX()-2,myMaze->getY()+1); + } + break; + + case 2: + if(areaLatt == 0){ + myMaze->setC_Left(MUR); + } + else if(areaLatt == 1){ + myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()-1);//mur? + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()); + myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+1);//mur? + + //myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+1);//mur? + myMaze->setC(VIDE,myMaze->getX()-2,myMaze->getY()); + //myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+1);//mur? + } + else if(areaLatt == 2){ + + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-1); + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()); + myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+1); + + myMaze->setC(VIDE,myMaze->getX()-2,myMaze->getY()+1); + myMaze->setC(VIDE,myMaze->getX()-2,myMaze->getY()); + myMaze->setC(VIDE,myMaze->getX()-2,myMaze->getY()+1); + } + break; + } + break; + + case RIGHT: + switch(areaVert) + { + case 0: + myMaze->setC_Right(MUR); + break; + + case 1: + if(areaLatt == 0){ + myMaze->setC_Right(MUR); + } + else if(areaLatt == 1){ + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-1); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+1); + + myMaze->setC(MUR,myMaze->getX()+2,myMaze->getY()); + } + else if(areaLatt == 2){ + + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-1); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+1); + + myMaze->setC(PAS_EXPLORER,myMaze->getX()+2,myMaze->getY()-1); + myMaze->setC(MUR,myMaze->getX()+2,myMaze->getY()); + myMaze->setC(PAS_EXPLORER,myMaze->getX()+2,myMaze->getY()+1); + } + break; + + case 2: + if(areaLatt == 0){ + myMaze->setC_Right(MUR); + } + else if(areaLatt == 1){ + myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()-1);//mur? + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()); + myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+1);//mur? + + //myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+1);//mur? + myMaze->setC(VIDE,myMaze->getX()+2,myMaze->getY()); + //myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+1);//mur? + } + else if(areaLatt == 2){ + + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-1); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()); + myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+1); + + myMaze->setC(VIDE,myMaze->getX()+2,myMaze->getY()+1); + myMaze->setC(VIDE,myMaze->getX()+2,myMaze->getY()); + myMaze->setC(VIDE,myMaze->getX()+2,myMaze->getY()+1); + } + break; + } + break; + } } \ No newline at end of file