Exemple #1
0
def generate_maze(algorithm, grid, bias):
    """generate a maze"""
    print("Algorithm = %s, bias = %s" % (algorithm, str(bias)))
    basename = None

    if algorithm in ['AB', 'AldousBroder']:
        from aldous_broder import Aldous_Broder
        Aldous_Broder.on(grid)
        basename = "AldousBroder"
    elif algorithm in ['RAB', 'ReverseAldousBroder']:
        from aldous_broder import Aldous_Broder
        Aldous_Broder.reverse_on(grid)
        basename = "ReverseAldousBroder"
    elif algorithm in ['ABW', 'AldousBroderWilson']:
        from wilson import Wilson as ABW
        if bias is None:
            bias = 0.5
        ABW.hybrid_on(grid, cutoff=bias)
        basename = "AldousBroderWilson"
    elif algorithm in ['BT', 'BinaryTree']:
        from binary_tree import Binary_Tree
        if bias is None:
            bias = 0.5
        Binary_Tree.on(grid, bias=bias)
        basename = "BinaryTree"
    elif algorithm in ['BT2', 'BinaryTree2']:
        from binary_tree2 import Binary_Tree
        Binary_Tree.on(grid)
        basename = "BinaryTree2"
    elif algorithm in ['DFS', 'RBT', 'RecursiveBackTracker']:
        from recursive_backtracker import Recursive_Backtracker
        Recursive_Backtracker.on(grid)
        basename = "RecursiveBacktracker"
    elif algorithm in ['HK', 'HuntKill', 'HuntAndKill']:
        from hunt_and_kill import Hunt_and_Kill
        Hunt_and_Kill.on(grid)
        basename = "HuntAndKill"
    elif algorithm in ['NRDFS', 'Labyrinth']:
        from recursive_backtracker import Recursive_Backtracker
        Recursive_Backtracker.deterministic_on(grid)
        basename = "Labyrinth"
    elif algorithm in ['SW', 'Sidewinder']:
        from sidewinder import Sidewinder
        if bias is None:
            bias = 0.5
        Sidewinder.on(grid, bias=bias)
        basename = "Sidewinder"
    elif algorithm in ['BFS', 'BreadthFirstSearch']:
        from tree_search import Tree_Search
        Tree_Search.bfs_on(grid)
        basename = "BreadthFirstSearch"
    elif algorithm in ['HEAP', 'HeapSearch']:
        from tree_search import Tree_Search
        Tree_Search.heap_on(grid)
        basename = "HeapSearch"
    elif algorithm in ['W', 'Wilson']:
        from wilson import Wilson
        Wilson.on(grid)
        basename = "Wilson"
    print("maze generation: complete!")
    return basename
Exemple #2
0
def creator():
    """create a maze"""
    print(".", end="", flush=True)
    grid = Rectangular_Grid(rows, cols)
    Wilson.on(grid)
    return grid