import net.curtlewis.maze.algorithm.AldousBroder; import net.curtlewis.maze.algorithm.BinaryTree; import net.curtlewis.maze.algorithm.Sidewinder; import net.curtlewis.maze.distance.Distances; import net.curtlewis.maze.grid.Cell; import net.curtlewis.maze.grid.DistanceGrid; import net.curtlewis.maze.grid.Grid; public class MazeMain { public static void main(String[] args) throws Exception { Cell cell = new Cell(1, 2); // Grid grid = new Grid(10, 10); // BinaryTree maze = new BinaryTree(grid); DistanceGrid grid = new DistanceGrid(7, 7); // Sidewinder maze = new Sidewinder(grid); AldousBroder maze = new AldousBroder(grid); Cell root = grid.getCellAt(0, 0); Distances distances = root.calculateDistances(); grid.setDistances(distances); grid.hideDistanceValues(); // Uncomment to show path from root to a given cell // System.out.println(maze.toString()); // grid.showDistanceValues(); // System.out.println("=========================================\n"); // System.out.println(grid); // System.out.println("=========================================\n"); // grid.setDistances(distances.pathTo(grid.getCellAt(9,9))); // Uncomment to show a longest path System.out.println("=========================================\n"); System.out.println(grid); System.out.println("=========================================\n"); Cell newStart = distances.generateMaximumDistance(); Distances newDistances = newStart.calculateDistances(); Cell goal = newDistances.generateMaximumDistance(); grid.setDistances(newDistances.pathTo(goal)); grid.showDistanceValues(); System.out.println(grid); } }