天神下饭... 发表于 2021-8-7 20:30:53

有没有dalao看看


用python读入图片 有没有办法实现可视化走迷宫

人造人 发表于 2021-8-7 20:30:54

天神下饭... 发表于 2021-8-9 00:35
右下角右下角 入口左上角

import pygame

pygame.init()
pygame.display.set_caption('maze')

background = pygame.image.load('background.png')
block = pygame.image.load('block.png')
screen = pygame.display.set_mode(background.get_size())
clock = pygame.time.Clock()
fps = 80
block_position = (10, 230)
block_speed = 0.025
block_tick = 0
block_step = 3
key_down = False
key_value = 0

def tuple_add(a, b):
    return (a + b, a + b)

def color_add(a, b):
    return pygame.Color(a + b, a + b, a + b, 0)

def verify_position(position):
    fuzziness = 20
    width, height = block.get_size()
    for h in range(height):
      for w in range(width):
            a = background.get_at(tuple_add(position, (w, h)))
            b = pygame.Color(color_add((0, 0, 0), fuzziness))
            a = background.map_rgb(a)
            b = background.map_rgb(b)
            if a <= b: return False
    return True

def block_move():
    global block_position, block_tick
    block_tick += (1 / fps)
    if block_tick < block_speed: return
    block_tick = 0
    new_position = block_position
    if key_value == pygame.K_LEFT: new_position = tuple_add(block_position, (-1, 0))
    if key_value == pygame.K_UP: new_position = tuple_add(block_position, (0, -1))
    if key_value == pygame.K_RIGHT: new_position = tuple_add(block_position, (1, 0))
    if key_value == pygame.K_DOWN: new_position = tuple_add(block_position, (0, 1))
    if verify_position(new_position): block_position = new_position

main_loop = True
while main_loop:
    if key_down: block_move()
    screen.blit(background, (0, 0))
    screen.blit(block, block_position)
    pygame.display.update()
    for event in pygame.event.get():
      if event.type == pygame.QUIT:
            pygame.quit()
            main_loop = False
      if event.type == pygame.KEYDOWN:
            if event.key == ord('q'):
                pygame.event.post(pygame.event.Event(pygame.QUIT))
            key_down = True
            key_value = event.key
      if event.type == pygame.KEYUP:
            key_down = False
    clock.tick(fps)



nahongyan1997 发表于 2021-8-8 16:05:28

你这迷宫有出口吗{:10_275:}{:10_262:}

Ly_悠然天下 发表于 2021-8-8 21:06:06

所以,迷宫的出口在哪

天神下饭... 发表于 2021-8-9 00:34:54

nahongyan1997 发表于 2021-8-8 16:05
你这迷宫有出口吗

一般不是认为出口右下角吗。。。

天神下饭... 发表于 2021-8-9 00:35:44

nahongyan1997 发表于 2021-8-8 16:05
你这迷宫有出口吗

右下角右下角 入口左上角
页: [1]
查看完整版本: 有没有dalao看看