Привет всем!
Я сделал q-learn автомобильный ИИ с PyGame , и он работает нормально! Тем не менее, у меня возникла проблема, когда я хочу реализовать какое-то взаимодействие с автомобильной игрой в форме автомобиля, управляемого игроком.
Игра представляет собой игру на основе плиточных машин, которая выглядит следующим образом (без игрока): ![Image of game](https://i.stack.imgur.com/9p8Mq.png)
Моя проблема заключается в том, что цикл для q-learning должен постоянно выполняться для того, чтобы агент могдвигаться, но это заставляет машину ИИ двигаться с молниеносной скоростью, и это я решил раньше с помощью функции сна. Функция сна делает невозможным получение правильных нажатий клавиш, и движение становится очень неуклюжим.
Причина, по которой ИИ движется так быстро, заключается в том, что он перемещает «одну плитку» на цикл, что необходимо из-зареализация пространства наблюдения для алгоритма q-learning .
В данный момент я пытался решить проблему с помощью многопоточности, но она не работает, потому что я получаю ошибки с Pygame, такие как
pygame.error: display Surface quit
и
pygame.error: video system not initialized
Ошибки, которые не возникают, когда я не использую протектор.
После долгого поиска сарафана я не могу найти другого подхода к тому, как сделать это любым другим способом. .
Мой вопрос : Могу ли я решить эту проблему любым другим способом? Я хочу каким-то образом заставить Агента (красную машину) обновлять только каждый второй кадр или что-то в этом роде, или используя многопоточность, но то, что я сделал до сих пор, явно не работает!
НадеюсьЯ мог бы получить некоторую информацию от людей, которые гораздо более опытны с PyGame и python, чем я! Заранее спасибо!
Ps. Я не включил никакого кода, потому что проект слишком велик, чтобы включать его в один пост. Если есть какой-либо код, который вы хотели бы, чтобы я опубликовал, просто спросите!