From a05fc53d8aac886e5f6f1d358030b98fcdd884d6 Mon Sep 17 00:00:00 2001 From: Andinus Date: Sat, 16 Oct 2021 19:26:26 +0530 Subject: java/DFS: Move file to algorithms directory, cleanup --- algorithms/java/DFS.java | 71 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 algorithms/java/DFS.java (limited to 'algorithms') diff --git a/algorithms/java/DFS.java b/algorithms/java/DFS.java new file mode 100644 index 0000000..5357a7d --- /dev/null +++ b/algorithms/java/DFS.java @@ -0,0 +1,71 @@ +public class CG_pathfinder { + static int paths = 0; + + private static final int[][] dir = new int[][]{ + {0, 1}, //right + {1, 0}, //down + {0, -1}, //left + {-1, 0} //up + }; + + static void traverse(int x, int y, char[][] maze, boolean[][] visited) { + int curx; + int cury; + for (int i = 0; i < 4; i++) { + curx = x; + cury = y; + + curx += dir[i][0]; + cury += dir[i][1]; + + if (curx < 0 || cury < 0 + || curx > maze.length - 1 || cury > maze.length - 1) + continue; //optional? //for square mazes + + if (maze[curx][cury] == '$') { + System.out.println("Path Found"); + paths++; + for(int k = 0; k < maze.length; k++) { + for(int j = 0; j < maze.length; j++) + System.out.print(visited[k][j]); + System.out.println(); + } + } else if (maze[curx][cury] == 'x' || visited[curx][cury]) + continue; + else if (maze[curx][cury] == '_') { + visited[curx][cury] = true; + traverse(curx, cury, maze, visited); + visited[curx][cury] = false; + } + } + } + + public static void main(String[] args) { + char[][] maze = { + {'*', '#', 'x'}, + {'_', '_', '_'}, + {'_', '_', '$'} + }; + int[] start = {0, 0}; + + System.out.println("Solving for the maze: "); + boolean[][] visited = new boolean[maze.length][maze.length]; + + for (int i = 0; i