Как эффективно маркировать окруженную территорию - PullRequest
0 голосов
/ 17 апреля 2019

Я создаю игру - что-то вроде this - моя игра меняется в деталях, но для описания моей проблемы эта игра великолепна.У меня проблема с маркировкой области.

Правила игры (если вы играете в связанную игру в течение минуты, вы получите, если - в основном описано, что делают pacman и призраки в этой игре):

На карте естьигрок и враги. При запуске вся карта пуста (все поля не заняты). Пока игрок движется через незанятую область (темная в любимой игре), он отмечает свой путь позади.Если враг (призрак) попадает в цель, игрок умирает.Эта часть довольно проста - я 2d массив с числами, где 0 = незанятая область, 1 = занятая и 2 = отмеченная область, я просто рисую соответствующие плитки и проверяю массив, когда объекты движутся.Проблемная часть наступает, когда игрок переходит из незанятой области в занятую область.Существует три сценария (эта часть точно такая же, как в связанной игре):

  • занятая плитка не связана с краями карты (это может случиться, когда враг уничтожает несколько плитокударяя их, и немногие остаются одни в середине карты) - тогда отмеченный путь должен быть нарисован как занятая область,

  • игрок отмечает путь между двумя занятыми областями, обе соединенык краям карты, затем он делает две отдельные области и могут произойти две вещи:

    • сначала его путь помечается как занятый,
    • , если на первой отдельной области находится враг (призрак)) ничего не делать,
    • , если в первой отдельной области нет врагов, пометить всю область как занятую,
    • то же самое для второй области

--- конец правил:)

Как вы видите, я описал вам что-то очень похожее на связанную игру, моя будет отличаться в деталях и сделана в основном для изучения Python и веселья,но у меня большая проблема сВ последней части я должен решить, что делать, если игрок переходит из незанятой области в занятую.

Я могу проверить рекурсивные тайлы - сначала ту, на которой я стою, затем ее соседей, затем верну истину или ложь, но сложность подобного рода трагична (моя карта будет иметь около 200 фид).

У вас есть идея, как проверить и отметить соответствующую область, и у вас нет тонны на вычислениях сразу?

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