#include #include #include "maze.h" #include int issafe(char* maze, int x, int y, int size) { if ((x >= 0 && x < size) && (y >= 0 && y < size) && (maze[x * size + y] == ' ')){ return 1; } return 0; } int backtracking(char* maze, int x, int y, int size){ //https://www.geeksforgeeks.org/rat-in-a-maze-backtracking-2/ if(x == size - 1 && y == size - 1 && maze[x * size + y] == ' '){ //kontrola ci sa nachadzam na konci maze[x * size + y] = '*'; return 1; } if(issafe(maze, x, y, size) == 1) { // znazornenie stien maze[x * size + y] = '*'; if (backtracking(maze, x, y + 1, size) == 1) { //pohyb doprava return 1; } if (backtracking(maze, x + 1, y, size) == 1) { //pohyb dole return 1; } if (backtracking(maze, x - 1, y, size) == 1) { //pohyb dol return 1; } if (backtracking(maze, x, y - 1, size) == 1) { //pohyb hore return 1; } maze[x * size + y] = ' '; } return 0; } int solve_maze(char* maze, int size) { return backtracking(maze, 0, 0, size); //volanie funkcie }