#include <stdio.h> #define SIZE 12 void printMaze(char maze[][SIZE]) { for (int row = 0; row < SIZE; ++row) { for (int column = 0; column < SIZE; ++column) { } } } int mazeTraverse(char maze[][SIZE], int row, int column) { /* If the current position is outside the maze, then the exit has been reached. */ if (row < 0 || row >= SIZE || column < 0 || column >= SIZE) { return 1; } if (maze[row][column] != '.') { return 0; } maze[row][column] = 'X'; printMaze(maze); /* Try moving in four directions. The order is: right, down, left, up. */ if (mazeTraverse(maze, row, column + 1)) { return 1; } if (mazeTraverse(maze, row + 1, column)) { return 1; } if (mazeTraverse(maze, row, column - 1)) { return 1; } if (mazeTraverse(maze, row - 1, column)) { return 1; } /* This position was not part of the correct path, so change it back. */ maze[row][column] = '.'; return 0; } int main(void) { char maze[SIZE][SIZE] = { { '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#' }, { '#', '.', '.', '.', '#', '.', '.', '.', '.', '.', '.', '#' }, { '.', '.', '#', '.', '#', '.', '#', '#', '#', '#', '.', '#' }, { '#', '#', '#', '.', '#', '.', '.', '.', '.', '#', '.', '#' }, { '#', '.', '.', '.', '.', '#', '#', '.', '#', '.', '.', '.' }, { '#', '#', '#', '#', '.', '#', '.', '#', '.', '#', '.', '#' }, { '#', '.', '.', '#', '.', '#', '.', '#', '.', '#', '.', '#' }, { '#', '#', '.', '#', '.', '#', '.', '#', '.', '#', '.', '#' }, { '#', '.', '.', '.', '.', '.', '.', '.', '.', '#', '.', '#' }, { '#', '#', '#', '#', '#', '#', '.', '#', '#', '#', '.', '#' }, { '#', '.', '.', '.', '.', '.', '.', '#', '.', '.', '.', '#' }, { '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#' } }; printMaze(maze); if (mazeTraverse(maze, 1, 1)) { } else { } printMaze(maze); return 0; }
Standard input is empty
Maze before traversal: # # # # # # # # # # # # # . . . # . . . . . . # . . # . # . # # # # . # # # # . # . . . . # . # # . . . . # # . # . . . # # # # . # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X . . # . . . . . . # . . # . # . # # # # . # # # # . # . . . . # . # # . . . . # # . # . . . # # # # . # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X . # . . . . . . # . . # . # . # # # # . # # # # . # . . . . # . # # . . . . # # . # . . . # # # # . # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # . # . # # # # . # # # # . # . . . . # . # # . . . . # # . # . . . # # # # . # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # . # . . . . # . # # . . . . # # . # . . . # # # # . # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . . . # # . # . . . # # # # . # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X . # # . # . . . # # # # . # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # . # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . . X . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . . X X . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . . X X X . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . . X X X X . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . . X X X X X # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # X # . # # . . . X X X X X # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # X # . # # # . # X # . # X # . # # . . . X X X X X # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # X # . # # . . # X # . # X # . # # # . # X # . # X # . # # . . . X X X X X # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . . X X X . . # . # # # # # # # X # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . . X X X . . # . # # # # # # # X # # # . # # . . . . . X # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . . X X X . . # . # # # # # # # X # # # . # # . . . . X X # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . . X X X . . # . # # # # # # # X # # # . # # . . . X X X # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . . X X X . . # . # # # # # # # X # # # . # # . . X X X X # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . . X X X . . # . # # # # # # # X # # # . # # . X X X X X # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . . X X X . . # . # # # # # # # X # # # . # # X X X X X X # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # X # . # . # # . . . X X X . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # X # . # . # # # . # X # X # . # . # # . . . X X X . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # X # . # . # # . . # X # X # . # . # # # . # X # X # . # . # # . . . X X X . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . . X X . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # . X X X . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # . # X # . # . # . # # X X X X . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . . # X # . # . # . # # # X # X # . # . # . # # . X X X . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # . X # X # . # . # . # # # X # X # . # . # . # # . X X X . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . . X X # # . # . . . # # # # X # . # . # . # # X X # X # . # . # . # # # X # X # . # . # . # # . X X X . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # . X X . # # . # . . . # # # # . # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X X X # . . . . . . # . . # X # . # # # # . # # # # X # . . . . # . # # X X X . # # . # . . . # # # # . # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X . . # . . . . . . # . X # . # . # # # # . # # # # . # . . . . # . # # . . . . # # . # . . . # # # # . # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # # # # # # # # # # # # # # X . . # . . . . . . # X X # . # . # # # # . # # # # . # . . . . # . # # . . . . # # . # . . . # # # # . # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # # The maze was solved. Maze after traversal: # # # # # # # # # # # # # X . . # . . . . . . # X X # . # . # # # # . # # # # . # . . . . # . # # . . . . # # . # . . . # # # # . # . # . # . # # . . # . # . # . # . # # # . # . # . # . # . # # . . . . . . . . # . # # # # # # # . # # # . # # . . . . . . # . . . # # # # # # # # # # # # #