Отношение управляемого объекта и игры в ООП
Не совсем понятно как реализовать ход черепашки в парадигме ООП на JS. На кнопке следующий код: onClick="turtle.move(). Если turtle.rotate() ещё как-то черепашка может осилить сама, то тут нужно взаимодействовать с суровой реальностью, но как -- до конца не понимаю.
Насколько я понял, архитектура любой игры, сделанной в ООП стиле, должна сводится к композиции всех классов в одном большом классе Game. Тогда как должен примерно выглядеть интерфейс взаимодействия пользователя с игрой (лучше даже сказать интерфейса с логикой)? Напрашивается, что через вызов методов объекта game. То есть на кнопке должен быть некий метод game.turtle.move(), который взаимодействует с экземпляром game.board класса Board, который в свою очередь взаимодействует с экземплярами game.board.fields класса Field?
Прилагаю исходники: https://git.sr.ht/~liltechdude/cherepashka-js/tree/master/item/script.js