示例#1
0
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
示例#2
0
文件: run.py 项目: rinleit/bloxorz
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()