![](/media/cache/profiles/4b0986230d9d7aded7f0c24033d221d4.jpg.50x50_q85.jpg)
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:
- 31:ed23647fd16e
- Parent:
- 28:ac5c6350ed9a
- Child:
- 33:c8b4e5a392e6
--- a/directive.cpp Wed Aug 19 18:27:18 2015 +0000 +++ b/directive.cpp Mon Aug 31 13:36:39 2015 +0000 @@ -1,5 +1,6 @@ #include "directive.h" +Serial pc(SERIAL_TX, SERIAL_RX); int tabIR[12][2]= { {80, 400},{50, 600},{40, 700},{30, 900},{25,1100}, {20,1300},{15,1600},{10,2400},{ 8,2700},{ 7,3000}, @@ -14,8 +15,8 @@ Directive::Directive():TTask(0)//on veux que cette tache sois exec toute les fois que TTaskGen sexecute. { /* initialize random seed: */ - srand (time(NULL)); - + srand (time(NULL)); + myMaze->setDirection(UP); //c=0; ssc32 = new /*Serial*//*Raw*/Serial/*(USBTX, USBRX);*/(PB_6, PB_7);//(PA_9, PA_10); @@ -32,7 +33,7 @@ //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); @@ -58,7 +59,22 @@ getUp = false; } + ctrDesPattes->calibre(); + + #ifdef DEBUG_BOOT_GRAPHICAL_INTERFACE + wait(2); + debug("\x1B[2J"); //clear screen + debug("\x1B[25l");//hide cursor + debug("\x1B[;H"); //cursor default position + + //createSLbox(0,0,5,15,"Mode"); + createDLbox(0,0,10,20,"Menu");//(1,12,10,20,"test2"); + setText(1,3,"1) BrainControle"); + setText(1,4,"2) Show Maze"); + //createDLbox(16,0,5,15,"Stage"); + + #endif } Directive::~Directive() { @@ -67,11 +83,39 @@ delete ctrDesPattes; if(ssc32) delete ssc32; - if(myMaze) + if(myMaze) delete myMaze; } void Directive::task(void)//ALL CODE HERE// { + + #ifdef DEBUG_BOOT_GRAPHICAL_INTERFACE + if(pc.readable()){ + + debug("\x1B[2J"); //clear screen + debug("\x1B[25l");//hide cursor + debug("\x1B[;H"); //cursor default position + + + int idCommand; + + idCommand = fgetc(pc) - '0'; + switch(idCommand) + { + case 1: + createDLbox(0,0,10,25,"BrainControle"); + setText(1,3,"1) Move Up"); + setText(1,4,"2) Move Down"); + setText(1,5,"2) Move Left"); + setText(1,6,"2) Move Right"); + break; + + case 2: + createDLbox(0,0,10,20,"Show Maze"); + break; + } + } + #endif //debug(DEBUG_DIRECTIVE_TEST,"\n\rIn task directive"); if(ctrDesPattes->isSeqComplet()) { if((tableauDeCommange[0] == 6) && (size_tableauDeCommange == 1)) { @@ -102,7 +146,7 @@ debug("\n\r flag: %d",flag[0]); debug("\n\r data: %x",data[0]); }*/ - #ifndef BACKUP +#ifndef BACKUP updateModuleValue(); ////////////////////////////// @@ -111,86 +155,80 @@ 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(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 ) - { + + switch(nextCase ) { case VIDE: - debug(DEBUG_DIRECTIVE_TEST," Javance"); + debug(DEBUG_DIRECTIVE_TEST," Javance"); addTableauDeCommande(6); - break; - - case EXPLORER:// ici pt amiliorer - debug(DEBUG_DIRECTIVE_TEST," Javance"); + 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 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; } - 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 + +#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) { @@ -207,8 +245,8 @@ } else { debug(DEBUG_DIRECTIVE_TEST,"\n\r -Nothing:"); addTableauDeCommande(6); - - + + int randomNbr = rand() % 4; switch(randomNbr) { @@ -228,11 +266,11 @@ debug(DEBUG_DIRECTIVE_TEST," Jattend"); break; } - - + + //addTableauDeCommande(6); }*/ - #endif +#endif /////////////// // Mouvement // /////////////// @@ -379,268 +417,244 @@ 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]); + 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]); + 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]); + for(int i=0; i<3; i++) debug(DEBUG_DIRECTIVE_LABYRINTH," [%02X] ",mymap[i+6]); debug(DEBUG_DIRECTIVE_LABYRINTH,"\n\r"); - - - - 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; - } - - - switch(myMaze->getDirection()){ + + + + 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; + } + + + 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; + 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; + + 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; + + 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); - } + + 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; - - 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