Взаимодействие с AI в PyGame - PullRequest
2 голосов
/ 25 октября 2019

Привет всем!

Я сделал q-learn автомобильный ИИ с PyGame , и он работает нормально! Тем не менее, у меня возникла проблема, когда я хочу реализовать какое-то взаимодействие с автомобильной игрой в форме автомобиля, управляемого игроком.

Игра представляет собой игру на основе плиточных машин, которая выглядит следующим образом (без игрока): Image of game

Моя проблема заключается в том, что цикл для q-learning должен постоянно выполняться для того, чтобы агент могдвигаться, но это заставляет машину ИИ двигаться с молниеносной скоростью, и это я решил раньше с помощью функции сна. Функция сна делает невозможным получение правильных нажатий клавиш, и движение становится очень неуклюжим.

Причина, по которой ИИ движется так быстро, заключается в том, что он перемещает «одну плитку» на цикл, что необходимо из-зареализация пространства наблюдения для алгоритма q-learning .

В данный момент я пытался решить проблему с помощью многопоточности, но она не работает, потому что я получаю ошибки с Pygame, такие как

pygame.error: display Surface quit

и

pygame.error: video system not initialized

Ошибки, которые не возникают, когда я не использую протектор.


После долгого поиска сарафана я не могу найти другого подхода к тому, как сделать это любым другим способом. .

Мой вопрос : Могу ли я решить эту проблему любым другим способом? Я хочу каким-то образом заставить Агента (красную машину) обновлять только каждый второй кадр или что-то в этом роде, или используя многопоточность, но то, что я сделал до сих пор, явно не работает!

НадеюсьЯ мог бы получить некоторую информацию от людей, которые гораздо более опытны с PyGame и python, чем я! Заранее спасибо!

Ps. Я не включил никакого кода, потому что проект слишком велик, чтобы включать его в один пост. Если есть какой-либо код, который вы хотели бы, чтобы я опубликовал, просто спросите!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...