fork download
  1. #include <stdio.h>
  2.  
  3. #define SIZE 12
  4.  
  5. void printMaze(char maze[][SIZE])
  6. {
  7. for (int row = 0; row < SIZE; ++row)
  8. {
  9. for (int column = 0; column < SIZE; ++column)
  10. {
  11. printf("%c ", maze[row][column]);
  12. }
  13.  
  14. puts("");
  15. }
  16.  
  17. puts("");
  18. }
  19.  
  20. int mazeTraverse(char maze[][SIZE],
  21. int row,
  22. int column)
  23. {
  24. /*
  25.   If the current position is outside the maze,
  26.   then the exit has been reached.
  27.   */
  28.  
  29. if (row < 0 || row >= SIZE ||
  30. column < 0 || column >= SIZE)
  31. {
  32. return 1;
  33. }
  34.  
  35. if (maze[row][column] != '.')
  36. {
  37. return 0;
  38. }
  39.  
  40. maze[row][column] = 'X';
  41.  
  42. printMaze(maze);
  43.  
  44. /*
  45.   Try moving in four directions.
  46.   The order is:
  47.   right, down, left, up.
  48.   */
  49.  
  50. if (mazeTraverse(maze, row, column + 1))
  51. {
  52. return 1;
  53. }
  54.  
  55. if (mazeTraverse(maze, row + 1, column))
  56. {
  57. return 1;
  58. }
  59.  
  60. if (mazeTraverse(maze, row, column - 1))
  61. {
  62. return 1;
  63. }
  64.  
  65. if (mazeTraverse(maze, row - 1, column))
  66. {
  67. return 1;
  68. }
  69.  
  70. /*
  71.   This position was not part of the correct path,
  72.   so change it back.
  73.   */
  74.  
  75. maze[row][column] = '.';
  76.  
  77. return 0;
  78. }
  79.  
  80. int main(void)
  81. {
  82. char maze[SIZE][SIZE] =
  83. {
  84. { '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#' },
  85. { '#', '.', '.', '.', '#', '.', '.', '.', '.', '.', '.', '#' },
  86. { '.', '.', '#', '.', '#', '.', '#', '#', '#', '#', '.', '#' },
  87. { '#', '#', '#', '.', '#', '.', '.', '.', '.', '#', '.', '#' },
  88. { '#', '.', '.', '.', '.', '#', '#', '.', '#', '.', '.', '.' },
  89. { '#', '#', '#', '#', '.', '#', '.', '#', '.', '#', '.', '#' },
  90. { '#', '.', '.', '#', '.', '#', '.', '#', '.', '#', '.', '#' },
  91. { '#', '#', '.', '#', '.', '#', '.', '#', '.', '#', '.', '#' },
  92. { '#', '.', '.', '.', '.', '.', '.', '.', '.', '#', '.', '#' },
  93. { '#', '#', '#', '#', '#', '#', '.', '#', '#', '#', '.', '#' },
  94. { '#', '.', '.', '.', '.', '.', '.', '#', '.', '.', '.', '#' },
  95. { '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#' }
  96. };
  97.  
  98. printf("Maze before traversal:\n\n");
  99. printMaze(maze);
  100.  
  101. if (mazeTraverse(maze, 1, 1))
  102. {
  103. printf("The maze was solved.\n");
  104. }
  105. else
  106. {
  107. printf("No path was found.\n");
  108. }
  109.  
  110. printf("\nMaze after traversal:\n\n");
  111. printMaze(maze);
  112.  
  113. return 0;
  114. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
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 # . # . # # # # . # 
# # # . # . . . . # . # 
# . . . . # # . # . . . 
# # # # . # . # . # . # 
# . . # . # . # . # . # 
# # . # . # . # . # . # 
# . . . . . . . . # . # 
# # # # # # . # # # . # 
# . . . . . . # . . . # 
# # # # # # # # # # # #