@Folifolo

Как реализовать взаимодействие юнита с картой?

Делаю симулятор "искусственной жизни". Есть прямоугольное поле, где в каждой точке может быть пустота/стена/еда/кислота/клетка, также есть класс, описывающий генетический код клетки и другие параметры. Клетка может воздействовать на поле (например, есть еду), а также, на другие клетки (например, наносить урон). Хочется узнать, как правильно связать (или реализовать) клетку (юнит) и карту.

Сейчас это реализовано в виде двумерного массива из целых чисел, которые отвечают типу объекта и списка клеток: каждый ход опрашивается каждая клетка списка, ей сообщается, что находится рядом с ней, на основе чего она сообщает, какой ход хочет сделать. После этого, на карту вносятся соответствующие изменения. Например, если клетка перемещается, то в массиве на её месте ставится "пустота", а на новой позиции ставится "клетка". Для взаимодействия с другими клетками, по их координатам на карте находится сам объект в списке и соответственно изменяется.
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 1
@WaterSmith
Android-разработчик. Java, Kotlin
А что вас смущает в вашей текущей реализации?
Лично мне не ясно только что вы будете делать в случае коллизий. Например, есть две клетки, между которыми находится еда, и они обе решили её съесть. Что произойдет? (другой вариант коллизии - одна клетка собралась атаковать, а другая уходит из атакуемой позиции)
А по поводу хранения игрового состояния в массиве у меня возражений нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы