如何欺骗pygame.key.get_pressed()认为已按下某个键?

在尝试使用遗传算法玩我编写的蛇游戏时,我试图模拟按键,以便算法可以玩游戏。

我正在使用pygame.key.get_pressed()来找出按下键盘上的哪个键,并正在使用pygame.event.Event(pygame.KEYDOWN ...)将事件插入事件队列中,以模拟算法。

但是,pygame.key.get_pressed()似乎无法识别算法创建的按键事件。

如何获得玩游戏的算法?

这就是我模拟按键的方式:

key_event = pygame.event.Event(pygame.KEYDOWN, {'unicode':'', 'key':273, 'mod':0, 'scancode':72, 'window':None})
    pygame.event.post(key_event)
    key_event = pygame.event.Event(pygame.KEYUP, {'key':273, 'mod':0, 'scancode':72, 'window':None})
    pygame.event.post(key_event)

这就是游戏移动蛇的方式:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()

        keys = pygame.key.get_pressed()

        for key in keys:
            if keys[pygame.K_LEFT]:
                self.dirnx = -1
                self.dirny = 0
                self.turns[self.head.pos[:]] = [self.dirnx, self.dirny]

            elif keys[pygame.K_RIGHT]:
                self.dirnx = 1
                self.dirny = 0
                self.turns[self.head.pos[:]] = [self.dirnx, self.dirny]

            elif keys[pygame.K_UP]:
                self.dirnx = 0
                self.dirny = -1
                self.turns[self.head.pos[:]] = [self.dirnx, self.dirny]

            elif keys[pygame.K_DOWN]:
                self.dirnx = 0
                self.dirny = 1
                self.turns[self.head.pos[:]] = [self.dirnx, self.dirny]

我在想,我将不得不改变游戏检查事件队列的方式,而不是检查实际按下了哪些键,但是我不知道该怎么做。