У меня есть сетка (пример ниже), содержащая внешние стены (отмеченные как W), блоки окружения (E), открытое пространство (o) и активные точки (A). В настоящее время эта сетка хранится в [,] со всеми данными, связанными с данной точкой. Я пытаюсь определить, замкнута ли активная точка (определяется как неспособная достичь верхней части сетки, потому что она заблокирована блоками среды), но мне трудно найти простой способ решения этой проблемы. Я знаю, что мог бы реализовать A*, и это было бы более или менее легко со всем имеющимся кодом примеров, но я не думаю, что удар по производительности был бы действительно необходим или стоил бы для такой, казалось бы, тривиальной операции.
W--Top Of Grid--W
W---------------W
W-EEAEE-----EEE-W
WEEEEEEE-EEEEAEEW
WEEEEEEE--EEEEEEW
WEEEEEEEE-AEEEEEW
WWWWWWWWWWWWWWWWW
Буква A в третьей строке может нарисовать путь к вершине сетки, как и буква в последней строке, а буква в четвертой строке — нет. Меня не интересуют фактические пути, мне просто нужно определить, попал ли объект в ловушку или нет. Какое решение было бы оптимальным для этого проекта?
Что бы это ни стоило, это проект C # для пошаговой игры с сеткой, если это вообще помогает.
Заранее благодарим вас за любую помощь, которую вы можете предложить, это очень ценится.