about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorvamsee <vamsee.somasi@gmail.com>2021-10-16 15:00:41 +0530
committervamsee <vamsee.somasi@gmail.com>2021-10-16 15:00:41 +0530
commit77a9a42d8b5b65a414c3f1d527bc1d9d04e7e663 (patch)
treeb4f90d4adf3bafed07648463ff8bb65aa7294ef8
parent58a57abaaa5fa2f579e72350a7d5813c65e10560 (diff)
downloadfornax-77a9a42d8b5b65a414c3f1d527bc1d9d04e7e663.tar.gz
Added DFS working code in java
-rw-r--r--java/DFS.txt80
1 files changed, 80 insertions, 0 deletions
diff --git a/java/DFS.txt b/java/DFS.txt
new file mode 100644
index 0000000..800846c
--- /dev/null
+++ b/java/DFS.txt
@@ -0,0 +1,80 @@
+package com.company;
+
+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();
+                }
+
+            //    System.exit(0);
+            }
+            else if(maze[curx][cury]=='x' || visited[curx][cury]){
+                continue;
+            }
+            else if(maze[curx][cury]=='_'){
+                visited[curx][cury]=true;
+               // System.out.println("curx "+ curx+ "cury "+cury);
+                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<maze.length;i++){
+            for(int j=0;j<maze[i].length;j++){
+                System.out.print(maze[i][j] + " ");     //Printing maze
+            }
+            System.out.println("");
+        }
+        for(int i=0;i< maze.length;i++){
+            for(int j=0;j<maze.length;j++)  {
+                visited[i][j]=false;
+            }
+        }
+        visited[0][0]=true;
+        traverse(start[0],start[1],maze,visited);
+        if(paths==0){
+            System.out.println("no paths found");
+        }
+        else{
+            System.out.println(paths);
+        }
+    }
+}