Ejemplo n.º 1
0
def run_game():
    snake_coords = [(1, 2), (1, 1)]
    apple = get_apple_coord(snake_coords)
    score = 0

    canvas.draw_bg()
    canvas.draw_grid()
    canvas.draw_cell_line(snake_coords, canvas.COLOR.DARK_GRAY.value,
                          canvas.COLOR.DARK_GREEN.value)
    canvas.draw_cell(apple, canvas.COLOR.RED.value)
    canvas.update()

    while True:
        n_coord = next_coord(snake_coords, apple)
        if not n_coord:
            print("Game Over! STUCK")
            return

        score += move(snake_coords, n_coord, apple, draw=True)

        if not valid_coord(snake_coords[0], snake_coords[1:]):
            print("Game Over!")
            valid_coord(snake_coords[0], snake_coords[1:])
            return
        if len(snake_coords) == TOTAL:
            print("Game KO!")
            canvas.draw_grid()
            return
        if tools.cell_equal(n_coord, apple):
            apple = get_apple_coord(snake_coords)

        canvas.draw_cell(apple, canvas.COLOR.RED.value)
        canvas.draw_grid()
Ejemplo n.º 2
0
def move(snake_coords, n_coord, apple, draw=False):
    """
    移动一个格子
    :param snake_coords:    snake_coords
    :param n_coord:         移动到此格子
    :param apple:           apple
    :param draw:            是否更新canvas
    """

    snake_coords.insert(0, n_coord)
    tail = None
    if not tools.cell_equal(n_coord, apple):
        score = 0
        tail = snake_coords.pop()
    else:
        score = 1

    if draw:
        if tail:
            canvas.draw_cells([tail, apple], canvas.COLOR.BG_COLOR.value)
        canvas.draw_cell_line(snake_coords, canvas.COLOR.DARK_GRAY.value,
                              canvas.COLOR.DARK_GREEN.value)

    return score
Ejemplo n.º 3
0
if __name__ == "__main__":
    canvas.init("BFS")
    canvas.draw_bg()
    canvas.draw_grid()

    start = (6, 5)
    end = (12, 10)
    obstacles = []
    for x in range(4, 10):
        obstacles.append((x, 3))
    for x in range(4, 20):
        obstacles.append((x, 12))
    for y in range(2, 14):
        obstacles.append((10, y))
    for y in range(2, 16):
        obstacles.append((17, y))

    canvas.draw_cell(start, canvas.COLOR.GREEN.value)
    canvas.draw_cell(end, canvas.COLOR.RED.value)
    canvas.draw_cells(obstacles, canvas.COLOR.WHITE.value)
    canvas.update()

    input("Press <Enter> to start!")

    path = bfs(start, end, obstacles, show_details=True)
    canvas.draw_cell_line(path[:-1], canvas.COLOR.DARK_GRAY.value,
                          canvas.COLOR.RED.value)
    canvas.update()

    input("Press <Enter> to close!")