def handle(state: Control, map_size=(0, 0)): state.Play_handle = True pygame.init() display = Display(title='Bloxorz Game', map_size=map_size) result = True print("Press Space Key to Exit!") while True: # os.system("clear") for event in pygame.event.get(): if state.Play_handle: if event.type == pygame.KEYDOWN and event.key == pygame.K_UP: result = state.move_up() elif event.type == pygame.KEYDOWN and event.key == pygame.K_DOWN: result = state.move_down() elif event.type == pygame.KEYDOWN and event.key == pygame.K_RIGHT: result = state.move_right() elif event.type == pygame.KEYDOWN and event.key == pygame.K_LEFT: result = state.move_left() if display.quit(event): return state.draw_maps() state.draw_box() # state.print_maps() display.update() if state.check_goal(): print("WINNER!") return if result == False: print("LOSER!") return
def main(level=Level.lv1, Play_handle=True, algorithm=Algorithm.DFS, view='3'): print("Processing...") Maps = maps(level) size = Maps.size state = Control(Maps) if Play_handle: state.Play_handle = Play_handle handle(state, map_size=(size[0], size[1])) else: Start_Time = time.time() if algorithm == Algorithm.DFS: if view == '1': dfs_step_by_step(state) elif view == '2': result = dfs_path(state) deltatime(Start_Time) draw_path_2D(result, level=level) elif view == '3': result = dfs_path(state) deltatime(Start_Time) draw_path_3D(result, level=level, map_size=(size[0], size[1])) elif algorithm == Algorithm.BFS: if view == '1': bfs_step_by_step(state) elif view == '2': result = bfs_path(state) deltatime(Start_Time) draw_path_2D(result, level=level) elif view == '3': result = bfs_path(state) deltatime(Start_Time) draw_path_3D(result, level=level, map_size=(size[0], size[1])) elif algorithm == Algorithm.HILL: if view == '1': print("Hill Climbing do not support to View Step By Step !") return elif view == '2': result = hill_climbing(state) deltatime(Start_Time) draw_path_2D(result, level=level) elif view == '3': result = hill_climbing(state) deltatime(Start_Time) draw_path_3D(result, level=level, map_size=(size[0], size[1])) time.sleep(1) sys.exit()