Newer
Older
maze / src / main / MazeMain.java
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);
        
    }




}