Интерфейсы на любом языке программирования - это контракт, определяющий поведение и абстрактную связь между двумя сторонами.Когда вы разрабатываете программное решение, вы хотите создать его в соответствии с лучшими практиками и шаблонами, чтобы его было проще поддерживать в будущем.
В частности, в Java у вас есть как абстрактные классы, так и интерфейсы.Интерфейсы объявляют, что должен делать класс (Интерфейсы в Java8 + предоставляют способы указать поведение, фактические методы по умолчанию, но я предполагаю, что для вашего домашнего задания это еще не предназначено.) Поскольку вы разрабатываете игру, может быть интересно абстрагироватьфункциональность, что все части должны обрабатываться.Они должны знать, как указать свое местоположение, знать, все ли они еще активны в игре, знать правила, применимые к ней.Вы также можете абстрагировать движения, которые выполняются во время игры.Каждое движение имеет определенный фрагмент или части, к которым оно относится, знает, когда оно может быть выполнено и как выполнить само, и даже как отменить его.Ваш игровой класс также может иметь список, в котором хранится история движений, совершенных в игре.Таким образом, вы могли бы реализовать простой способ перемотки вашей игры до определенного момента.
Вы могли бы расширить свои знания, читая также принципы SOLID и проверяя общие шаблоны проектирования программного обеспечения (например, https://refactoring.guru/).