Как реализовать Snake Game с несколькими «продуктами» со связанным списком?(Джава) - PullRequest
0 голосов
/ 18 ноября 2018

В настоящее время в моей игре со змеями есть только одна еда, которая появляется по случайной координате, исчезает и появляется по другой координате, когда голова змеи касается ее.Я хочу добавить несколько продуктов одновременно, при этом пища, к которой прикасаются, исчезает и нерестится в другом месте, но другие продукты остаются там, где они есть.Я использую связанный список координат для змеи и еды.Это прекрасно работает для змеи, потому что нужно только добавить на голову и удалить последнюю координату, но это не так хорошо работает с едой.Пищевые гранулы разбросаны по сетке, так что змея может дотронуться до любого из них, будь то голова, где-то посередине или хвост.Если это всего лишь одна еда, то это будет food = new Coordinate (), которая назначает ей случайную координату в сетке, но с несколькими едами в связанном списке, я не знаю, как определить, какая еда была затронута, чтобы я мог сделать этоодин исчезнет и возродится.

1 Ответ

0 голосов
/ 18 ноября 2018

Вы можете иметь 2 lists.Один для змеи, другой для еды.Затем вы можете искать в Списке продуктов, чтобы найти пищу (если есть), которая имеет те же координаты, что и голова змеи.

Однако «правильной» структурой данных для змеи будет Queue (хвост будет первым элементом, а голова будет последним), а для еды будет Hashmap.Таким образом, вы можете найти еду в O (1) время сложности.То есть если бы количество Food мест было бы много.Если нет, то list будет работать нормально.

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