From f4e82b4be43707942b98386424972f6ae4bcdda9 Mon Sep 17 00:00:00 2001 From: Fernando R Jacobo Date: Wed, 13 Nov 2024 13:53:41 -0600 Subject: [PATCH 1/4] Added ifdef for debuggin mms.h --- main.cpp | 96 +++++++++++++++++++++++++++++++++++++++++--------------- makefile | 5 ++- mms.h | 4 +-- 3 files changed, 77 insertions(+), 28 deletions(-) diff --git a/main.cpp b/main.cpp index edb5773..81f5c68 100644 --- a/main.cpp +++ b/main.cpp @@ -17,6 +17,7 @@ struct fill { }; void flood(struct maze*, struct mmstats*); +void flood_start(struct maze*, struct mmstats*); void follow(struct maze maze, class mmstats mms); int* nextcell(int i, int j, int dir, int ndir[2]); void updatepos(class mmstats* mms); @@ -79,6 +80,43 @@ void flood(struct maze* maze, struct mmstats* mmstats) { } } +void flood_start(struct maze* maze, struct mmstats* mmstats) { + int i, j; + int prevNum; + int marked[16][16]; + std::queue myqueue; + + myqueue.push({0,0,-1}); + + while (myqueue.size()) { + i = myqueue.front().x; + j = myqueue.front().y; + prevNum = myqueue.front().z; + //myqueue.pop(); + + if (i < 0 || i > W || j < 0 || j > W + || marked[i][j]==1) { + continue; + } + else { + API::setText(i, j, prevNum+1); + maze->mhtn[i][j] = prevNum+1; + marked[i][j] = 1; + if (!maze->vwalls[i][j]) + myqueue.push({i+1, j, prevNum +1}); + + if (!maze->vwalls[i-1][j]) + myqueue.push({i-1, j, prevNum +1}); + + if (!maze->hwalls[i][j]) + myqueue.push({i, j+1, prevNum +1}); + + if (!maze->hwalls[i][j-1]) + myqueue.push({i, j-1, prevNum +1}); + } + } +} + void follow(struct maze maze, class mmstats* mms) { /* para que el micromouse siga el camino descendente * se tienen que dar 16 estados, esta funcion lo reduce a 4 @@ -93,9 +131,24 @@ void follow(struct maze maze, class mmstats* mms) { nextcell(mms->x, mms->y, mms->head->prev->value, next_L); nextcell(mms->x, mms->y, mms->head->next->value, next_R); nextcell(mms->x, mms->y, mms->head->next->next->value, next_B); - if(maze.mhtn[next[0]][next[1]] == nextmht && !API::wallFront() || !API::wallFront() && API::wallLeft() && API::wallRight()) { - log("forward"); - return; + if(maze.mhtn[next[0]][next[1]] == nextmht && !API::wallFront() + || !API::wallFront() && API::wallLeft() && API::wallRight()) { + if(maze.mhtn[next_L[0]][next_L[1]] <= nextmht && !API::wallLeft()) { /* Detectar si hay atajos */ + API::turnLeft(); + mms->turn(left); + log("left"); + return; + } + else if(maze.mhtn[next_R[0]][next_R[1]] <= nextmht && !API::wallRight()) { + API::turnRight(); + mms->turn(right); + log("right"); + return; + } + else{ + log("forward"); + return; + } } else if(maze.mhtn[next_L[0]][next_L[1]] <= nextmht && !API::wallLeft()) { API::turnLeft(); @@ -233,13 +286,13 @@ int main(int argc, char* argv[]) { stats.x = 0; stats.y = 0; - while (true) { + for(;;) { locateWall(&maze, &stats); flood(&maze, &stats); follow(maze, &stats); if(maze.mhtn[stats.x][stats.y] == 0){ log("Finish"); - return 0; + break; } //log(stats.x); //log(stats.y); @@ -247,27 +300,20 @@ int main(int argc, char* argv[]) { updatepos(&stats); //log(maze.hwalls[stats.x][stats.y]); } - /* - while (true) { - if (!API::wallLeft()) { - locateWall(&maze, &stats); - API::turnLeft(); - stats.turn(left); - flood(&maze, &stats); - } - while (API::wallFront()) { - locateWall(&maze, &stats); - API::turnRight(); - stats.turn(right); - flood(&maze, &stats); - } + for(;;){ + log("returning start"); + flood_start(&maze, &stats); locateWall(&maze, &stats); + follow(maze, &stats); + if(maze.mhtn[stats.x][stats.y] == 0){ + log("start"); + break; + } + //log(stats.x); + //log(stats.y); API::moveForward(); updatepos(&stats); - flood(&maze, &stats); - log(stats.x); - log(stats.y); - log(""); - } - */ + //log(maze.hwalls[stats.x][stats.y]); + } + return 0; } diff --git a/makefile b/makefile index e26bda9..f9af9c7 100644 --- a/makefile +++ b/makefile @@ -6,5 +6,8 @@ ARGS = -g -Wall compile: ${SRC} ${CC} ${ARGS} $^ -o a.out -run: compile +dir: ${SRC} + ${CC} ${ARGS} -DDIR $^ -o a.out + +run: a.out @./a.out diff --git a/mms.h b/mms.h index b445127..7d2341a 100644 --- a/mms.h +++ b/mms.h @@ -42,7 +42,7 @@ public: head = head->next; else head = head->prev; dir = head->value; - /* +#ifdef DIR switch (dir) { case norte: log("Norte"); break; @@ -53,7 +53,7 @@ public: case oeste: log("Oeste"); break; } - */ +#endif } }; -- 2.45.1 From ae5d90f27a44f5a1dc8323e7ca61d95ab38683f6 Mon Sep 17 00:00:00 2001 From: Fernando R Jacobo Date: Wed, 29 Jan 2025 11:13:00 -0600 Subject: [PATCH 2/4] Removed unnecessary lines --- main.cpp | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/main.cpp b/main.cpp index 81f5c68..4696409 100644 --- a/main.cpp +++ b/main.cpp @@ -29,18 +29,6 @@ void flood(struct maze* maze, struct mmstats* mmstats) { int marked[16][16]; std::queue myqueue; - /* - myqueue.push({6,7,0}); - myqueue.push({6,8,0}); - myqueue.push({7,6,0}); - myqueue.push({8,6,0}); - - myqueue.push({9,7,0}); - myqueue.push({9,8,0}); - myqueue.push({7,9,0}); - myqueue.push({8,9,0}); - */ - myqueue.push({7,7,-1}); myqueue.push({7,8,-1}); myqueue.push({8,7,-1}); @@ -92,7 +80,7 @@ void flood_start(struct maze* maze, struct mmstats* mmstats) { i = myqueue.front().x; j = myqueue.front().y; prevNum = myqueue.front().z; - //myqueue.pop(); + myqueue.pop(); if (i < 0 || i > W || j < 0 || j > W || marked[i][j]==1) { @@ -283,6 +271,8 @@ int main(int argc, char* argv[]) { API::setColor(0, 0, 'G'); // API::setText(0, 0, "abc"); mmstats stats; + struct maze maze2; + stats.x = 0; stats.y = 0; @@ -300,12 +290,11 @@ int main(int argc, char* argv[]) { updatepos(&stats); //log(maze.hwalls[stats.x][stats.y]); } - for(;;){ - log("returning start"); - flood_start(&maze, &stats); + for(;;) { locateWall(&maze, &stats); + flood_start(&maze, &stats); follow(maze, &stats); - if(maze.mhtn[stats.x][stats.y] == 0){ + if(stats.x == 0 && stats.y == 0) { log("start"); break; } -- 2.45.1 From 22d28d9e73a6a50e62225497515baf5ca2650c29 Mon Sep 17 00:00:00 2001 From: Fernando R Jacobo Date: Tue, 4 Feb 2025 14:52:19 -0600 Subject: [PATCH 3/4] fixed array not being initialized in 0 --- main.cpp | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/main.cpp b/main.cpp index 4696409..053446f 100644 --- a/main.cpp +++ b/main.cpp @@ -26,7 +26,7 @@ void locateWall(struct maze& maze); void flood(struct maze* maze, struct mmstats* mmstats) { int i, j; int prevNum; - int marked[16][16]; + int marked[16][16] = { 0 }; std::queue myqueue; myqueue.push({7,7,-1}); @@ -38,6 +38,14 @@ void flood(struct maze* maze, struct mmstats* mmstats) { API::setText(7, 8, 0); API::setText(8, 7, 0); API::setText(8, 8, 0); + +/* + for (int x = 0; x < 16; x++) { + for (int y = 0; y < 16; y++) { + marked[x][y] = 0; + } + } + */ while (myqueue.size()) { i = myqueue.front().x; @@ -71,7 +79,7 @@ void flood(struct maze* maze, struct mmstats* mmstats) { void flood_start(struct maze* maze, struct mmstats* mmstats) { int i, j; int prevNum; - int marked[16][16]; + int marked[16][16] = {0}; std::queue myqueue; myqueue.push({0,0,-1}); @@ -169,7 +177,7 @@ void follow(struct maze maze, class mmstats* mms) { mms->turn(left); log("bLeft"); } - log("error en la matri"); + //log("error en la matri"); } int* nextcell(int i, int j, int dir, int ndir[2]) { @@ -304,5 +312,19 @@ int main(int argc, char* argv[]) { updatepos(&stats); //log(maze.hwalls[stats.x][stats.y]); } + for(;;) { + locateWall(&maze, &stats); + flood(&maze, &stats); + follow(maze, &stats); + if(maze.mhtn[stats.x][stats.y] == 0){ + log("Finish"); + break; + } + //log(stats.x); + //log(stats.y); + API::moveForward(); + updatepos(&stats); + //log(maze.hwalls[stats.x][stats.y]); + } return 0; } -- 2.45.1 From 488a7517900f1446ab3b41a301d572917784958f Mon Sep 17 00:00:00 2001 From: Fernando R Jacobo Date: Thu, 6 Feb 2025 12:31:12 -0600 Subject: [PATCH 4/4] added a cordinate parameter in flood --- .gitignore | 1 + README.md | 4 +- main.cpp | 291 +++++++++++++++++++++++------------------------------ 3 files changed, 127 insertions(+), 169 deletions(-) diff --git a/.gitignore b/.gitignore index cba7efc..30fb9d1 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ a.out +.clang-format diff --git a/README.md b/README.md index 5844eb7..b8a0e10 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,11 @@ https://github.com/mackorone/mms ## Configuración en mms 1. Clonar el repositorio - ```git clone git.fisionx.mooo.com/FisionX/mms-sim``` + ```git clone git.fisionx.win/FisionX/mms-sim``` 2. Seleccionar el directorio del repo 3. Usar el comando de compilado ```c++ API.cpp Main.cpp``` -4. Seleccionar el binario ```a.out``` \ No newline at end of file +4. Seleccionar el binario ```a.out``` diff --git a/main.cpp b/main.cpp index 053446f..60468b3 100644 --- a/main.cpp +++ b/main.cpp @@ -1,8 +1,8 @@ -#include -#include -#include #include "api.h" #include "mms.h" +#include +#include +#include #define W 15 /* ancho y alto del laberinto -1 */ @@ -10,79 +10,25 @@ struct maze { /* Distancias de Manhattan */ int vwalls[15][15]; int hwalls[15][15]; int mhtn[16][16]; -}maze; +} maze; struct fill { int x, y, z; }; -void flood(struct maze*, struct mmstats*); -void flood_start(struct maze*, struct mmstats*); +void flood(struct maze *, struct mmstats *, int coordinates[2]); void follow(struct maze maze, class mmstats mms); -int* nextcell(int i, int j, int dir, int ndir[2]); -void updatepos(class mmstats* mms); -void locateWall(struct maze& maze); +int *nextcell(int i, int j, int dir, int ndir[2]); +void updatepos(class mmstats *mms); +void locateWall(struct maze &maze); -void flood(struct maze* maze, struct mmstats* mmstats) { - int i, j; - int prevNum; - int marked[16][16] = { 0 }; - std::queue myqueue; - - myqueue.push({7,7,-1}); - myqueue.push({7,8,-1}); - myqueue.push({8,7,-1}); - myqueue.push({8,8,-1}); - - API::setText(7, 7, 0); - API::setText(7, 8, 0); - API::setText(8, 7, 0); - API::setText(8, 8, 0); - -/* - for (int x = 0; x < 16; x++) { - for (int y = 0; y < 16; y++) { - marked[x][y] = 0; - } - } - */ - - while (myqueue.size()) { - i = myqueue.front().x; - j = myqueue.front().y; - prevNum = myqueue.front().z; - myqueue.pop(); - - if (i < 0 || i > W || j < 0 || j > W - || marked[i][j]==1) { - continue; - } - else { - API::setText(i, j, prevNum+1); - maze->mhtn[i][j] = prevNum+1; - marked[i][j] = 1; - if (!maze->vwalls[i][j]) - myqueue.push({i+1, j, prevNum +1}); - - if (!maze->vwalls[i-1][j]) - myqueue.push({i-1, j, prevNum +1}); - - if (!maze->hwalls[i][j]) - myqueue.push({i, j+1, prevNum +1}); - - if (!maze->hwalls[i][j-1]) - myqueue.push({i, j-1, prevNum +1}); - } - } -} - -void flood_start(struct maze* maze, struct mmstats* mmstats) { +void flood(struct maze *maze, struct mmstats *mmstats, int coordinates[2]) { int i, j; int prevNum; int marked[16][16] = {0}; std::queue myqueue; - myqueue.push({0,0,-1}); + myqueue.push({coordinates[0], coordinates[1], -1}); while (myqueue.size()) { i = myqueue.front().x; @@ -90,35 +36,33 @@ void flood_start(struct maze* maze, struct mmstats* mmstats) { prevNum = myqueue.front().z; myqueue.pop(); - if (i < 0 || i > W || j < 0 || j > W - || marked[i][j]==1) { + if (i < 0 || i > W || j < 0 || j > W || marked[i][j] == 1) { continue; - } - else { - API::setText(i, j, prevNum+1); - maze->mhtn[i][j] = prevNum+1; + } else { + API::setText(i, j, prevNum + 1); + maze->mhtn[i][j] = prevNum + 1; marked[i][j] = 1; if (!maze->vwalls[i][j]) - myqueue.push({i+1, j, prevNum +1}); + myqueue.push({i + 1, j, prevNum + 1}); - if (!maze->vwalls[i-1][j]) - myqueue.push({i-1, j, prevNum +1}); + if (!maze->vwalls[i - 1][j]) + myqueue.push({i - 1, j, prevNum + 1}); if (!maze->hwalls[i][j]) - myqueue.push({i, j+1, prevNum +1}); + myqueue.push({i, j + 1, prevNum + 1}); - if (!maze->hwalls[i][j-1]) - myqueue.push({i, j-1, prevNum +1}); + if (!maze->hwalls[i][j - 1]) + myqueue.push({i, j - 1, prevNum + 1}); } } } -void follow(struct maze maze, class mmstats* mms) { +void follow(struct maze maze, class mmstats *mms) { /* para que el micromouse siga el camino descendente - * se tienen que dar 16 estados, esta funcion lo reduce a 4 + * se tienen que dar 16 estados, esta funcion lo reduce a 4 */ int mht = maze.mhtn[mms->x][mms->y]; - int nextmht = mht-1; + int nextmht = mht - 1; int next[2]; int next_L[2]; int next_R[2]; @@ -127,145 +71,153 @@ void follow(struct maze maze, class mmstats* mms) { nextcell(mms->x, mms->y, mms->head->prev->value, next_L); nextcell(mms->x, mms->y, mms->head->next->value, next_R); nextcell(mms->x, mms->y, mms->head->next->next->value, next_B); - if(maze.mhtn[next[0]][next[1]] == nextmht && !API::wallFront() - || !API::wallFront() && API::wallLeft() && API::wallRight()) { - if(maze.mhtn[next_L[0]][next_L[1]] <= nextmht && !API::wallLeft()) { /* Detectar si hay atajos */ + if (maze.mhtn[next[0]][next[1]] == nextmht && !API::wallFront() || + !API::wallFront() && API::wallLeft() && API::wallRight()) { + if (maze.mhtn[next_L[0]][next_L[1]] <= nextmht && + !API::wallLeft()) { /* Detectar si hay atajos */ API::turnLeft(); mms->turn(left); log("left"); return; - } - else if(maze.mhtn[next_R[0]][next_R[1]] <= nextmht && !API::wallRight()) { + } else if (maze.mhtn[next_R[0]][next_R[1]] <= nextmht && + !API::wallRight()) { API::turnRight(); mms->turn(right); log("right"); return; - } - else{ + } else { log("forward"); return; } - } - else if(maze.mhtn[next_L[0]][next_L[1]] <= nextmht && !API::wallLeft()) { + } else if (maze.mhtn[next_L[0]][next_L[1]] <= nextmht && !API::wallLeft()) { API::turnLeft(); mms->turn(left); log("left"); return; - } - else if(maze.mhtn[next_R[0]][next_R[1]] <= nextmht && !API::wallRight()) { + } else if (maze.mhtn[next_R[0]][next_R[1]] <= nextmht && + !API::wallRight()) { API::turnRight(); mms->turn(right); log("right"); return; - } - else if(maze.mhtn[next_B[0]][next_B[1]] == nextmht - || API::wallFront() && API::wallLeft() && API::wallRight()) { + } else if (maze.mhtn[next_B[0]][next_B[1]] == nextmht || + API::wallFront() && API::wallLeft() && API::wallRight()) { API::turnRight(); mms->turn(right); API::turnRight(); mms->turn(right); log("180"); return; - } - else if(maze.mhtn[next_R[0]][next_R[1]] <= maze.mhtn[next_B[0]][next_B[1]] && !API::wallRight()){ + } else if (maze.mhtn[next_R[0]][next_R[1]] <= + maze.mhtn[next_B[0]][next_B[1]] && + !API::wallRight()) { API::turnRight(); mms->turn(right); log("bRight"); - } - else if(maze.mhtn[next_L[0]][next_L[1]] <= maze.mhtn[next_B[0]][next_B[1]] && !API::wallLeft()){ + } else if (maze.mhtn[next_L[0]][next_L[1]] <= + maze.mhtn[next_B[0]][next_B[1]] && + !API::wallLeft()) { API::turnLeft(); mms->turn(left); log("bLeft"); } - //log("error en la matri"); + // log("error en la matri"); } -int* nextcell(int i, int j, int dir, int ndir[2]) { +int *nextcell(int i, int j, int dir, int ndir[2]) { switch (dir) { - case norte: j++; - break; - case este: i++; - break; - case sur: j--; - break; - case oeste: i--; - break; + case norte: + j++; + break; + case este: + i++; + break; + case sur: + j--; + break; + case oeste: + i--; + break; } ndir[0] = i; ndir[1] = j; return ndir; } -void updatepos(class mmstats* mms) { +void updatepos(class mmstats *mms) { /* cada que se ejecuta moveForward la funcion actualiza * la posicion del micromouse en el valor correspondiente */ switch (mms->dir) { - case norte: mms->y++; - break; - case este: mms->x++; - break; - case sur: mms->y--; - break; - case oeste: mms->x--; - break; + case norte: + mms->y++; + break; + case este: + mms->x++; + break; + case sur: + mms->y--; + break; + case oeste: + mms->x--; + break; } } -void locateWall(struct maze* maze, class mmstats *mms) { +void locateWall(struct maze *maze, class mmstats *mms) { switch (mms->dir) { - case norte: - if(API::wallFront() && mms->y != 15) { + case norte: + if (API::wallFront() && mms->y != 15) { maze->hwalls[mms->x][mms->y] = 1; API::setWall(mms->x, mms->y, 'n'); } - if(API::wallLeft() && mms->x != 0){ - maze->vwalls[mms->x -1][mms->y] = 1; - API::setWall(mms->x -1, mms->y, 'e'); + if (API::wallLeft() && mms->x != 0) { + maze->vwalls[mms->x - 1][mms->y] = 1; + API::setWall(mms->x - 1, mms->y, 'e'); } - if(API::wallRight() && mms->x != 15){ + if (API::wallRight() && mms->x != 15) { maze->vwalls[mms->x][mms->y] = 1; API::setWall(mms->x, mms->y, 'e'); } break; case este: - if(API::wallFront() && mms->x != 15) { + if (API::wallFront() && mms->x != 15) { maze->vwalls[mms->x][mms->y] = 1; API::setWall(mms->x, mms->y, 'e'); } - if(API::wallLeft() && mms->y != 15){ + if (API::wallLeft() && mms->y != 15) { maze->hwalls[mms->x][mms->y] = 1; API::setWall(mms->x, mms->y, 'n'); } - if(API::wallRight() && mms->y != 0){ - maze->hwalls[mms->x][mms->y -1] = 1; - API::setWall(mms->x, mms->y -1, 'n'); + if (API::wallRight() && mms->y != 0) { + maze->hwalls[mms->x][mms->y - 1] = 1; + API::setWall(mms->x, mms->y - 1, 'n'); } break; case sur: - if(API::wallFront() && mms->y != 0) { - maze->hwalls[mms->x][mms->y-1] = 1; - API::setWall(mms->x, mms->y-1, 'n'); + if (API::wallFront() && mms->y != 0) { + maze->hwalls[mms->x][mms->y - 1] = 1; + API::setWall(mms->x, mms->y - 1, 'n'); } - if(API::wallLeft() && mms->x != 15){ + if (API::wallLeft() && mms->x != 15) { maze->vwalls[mms->x][mms->y] = 1; API::setWall(mms->x, mms->y, 'e'); } - if(API::wallRight() && mms->x != 0){ - maze->vwalls[mms->x -1][mms->y] = 1; - API::setWall(mms->x -1, mms->y, 'e'); + if (API::wallRight() && mms->x != 0) { + maze->vwalls[mms->x - 1][mms->y] = 1; + API::setWall(mms->x - 1, mms->y, 'e'); } break; case oeste: - if(API::wallFront() && mms->x != 0) { - maze->vwalls[mms->x -1][mms->y] = 1; - API::setWall(mms->x -1, mms->y, 'e'); + if (API::wallFront() && mms->x != 0) { + maze->vwalls[mms->x - 1][mms->y] = 1; + API::setWall(mms->x - 1, mms->y, 'e'); } - if(API::wallLeft() && mms->y != 0){ - maze->hwalls[mms->x][mms->y -1] = 1; - API::setWall(mms->x, mms->y -1, 'n'); + if (API::wallLeft() && mms->y != 0) { + maze->hwalls[mms->x][mms->y - 1] = 1; + API::setWall(mms->x, mms->y - 1, 'n'); } - if(API::wallRight() && mms->y != 15){ + if (API::wallRight() && mms->y != 15) { maze->hwalls[mms->x][mms->y] = 1; API::setWall(mms->x, mms->y, 'n'); } @@ -273,58 +225,63 @@ void locateWall(struct maze* maze, class mmstats *mms) { } } - -int main(int argc, char* argv[]) { +int main(int argc, char *argv[]) { log("Running..."); API::setColor(0, 0, 'G'); -// API::setText(0, 0, "abc"); mmstats stats; - struct maze maze2; - + stats.x = 0; stats.y = 0; - - for(;;) { + + int next_pos[2] = {7, 7}; + + for (;;) { locateWall(&maze, &stats); - flood(&maze, &stats); + flood(&maze, &stats, next_pos); follow(maze, &stats); - if(maze.mhtn[stats.x][stats.y] == 0){ + if (maze.mhtn[stats.x][stats.y] == 0) { log("Finish"); break; } - //log(stats.x); - //log(stats.y); + // log(stats.x); + // log(stats.y); API::moveForward(); updatepos(&stats); - //log(maze.hwalls[stats.x][stats.y]); + // log(maze.hwalls[stats.x][stats.y]); } - for(;;) { + + next_pos[0] = 0; + next_pos[1] = 0; + for (;;) { locateWall(&maze, &stats); - flood_start(&maze, &stats); + flood(&maze, &stats, next_pos); follow(maze, &stats); - if(stats.x == 0 && stats.y == 0) { + if (stats.x == 0 && stats.y == 0) { log("start"); break; } - //log(stats.x); - //log(stats.y); + // log(stats.x); + // log(stats.y); API::moveForward(); updatepos(&stats); - //log(maze.hwalls[stats.x][stats.y]); + // log(maze.hwalls[stats.x][stats.y]); } - for(;;) { + + next_pos[0] = 7; + next_pos[1] = 7; + for (;;) { locateWall(&maze, &stats); - flood(&maze, &stats); + flood(&maze, &stats, next_pos); follow(maze, &stats); - if(maze.mhtn[stats.x][stats.y] == 0){ + if (maze.mhtn[stats.x][stats.y] == 0) { log("Finish"); break; } - //log(stats.x); - //log(stats.y); + // log(stats.x); + // log(stats.y); API::moveForward(); updatepos(&stats); - //log(maze.hwalls[stats.x][stats.y]); } - return 0; + // log(maze.hwalls[stats.x][stats.y]); + return 0; } -- 2.45.1