Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* file: maze.c*/
- /* author: Boris Marinov (email: boris.marinov96@gmail.com) */
- /* date: 14/09/16 */
- /* version: ..... */
- /* Description: Program finds shortest path */
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <assert.h>
- void printMaze( char arr[20][20], int x) {
- int i;
- for( i = 0; i < x; i++) {
- printf("%s\n", arr[i]);
- }
- }
- void solveMaze(char arr[20][20], int height, int width, int i, int j) {
- if(arr[i][j] == 'E') {
- arr[i][j] = '#';
- printMaze(arr, height);
- }
- if(i > width || j > height || arr[i][j]!= '.') {
- return;
- }
- arr[i][j] = '#';
- solveMaze(arr, height, width, i+1, j);
- solveMaze(arr, height, width, i-1, j);
- solveMaze(arr, height, width, i, j+1);
- solveMaze(arr, height, width, i, j-1);
- arr[i][j] = '.';
- }
- void findKeyPoints( char arr[20][20], int height, int width) {
- int i, j, startI, startJ, endI, endJ;
- for(i = 0; i < height; i++) {
- for( j = 0; j < width; j++) {
- if(arr[i][j] == 'S') {
- arr[i][j] = '.';
- startI = i;
- startJ = j;
- }
- }
- }
- solveMaze(arr, height, width, startI, startJ);
- }
- int main(int argc, char const *argv[])
- {
- int width, height, i, j, start, end;
- scanf("%d %d", &height, &width);
- char maze[20][20];
- assert(maze);
- for(i = 0; i < height; i++) {
- scanf("%s", maze[i]);
- }
- findKeyPoints(maze, height, width);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement