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
def creator(): """create a maze""" print(".", end="", flush=True) grid = Rectangular_Grid(rows, cols) Wilson.on(grid) return grid