2015-09-30 3 views
1

У меня есть сетка 9x9 квадратов. Эти квадраты записываются в массив целых чисел. , поэтому каждое целое число представляет собой 1 блок. Integer предоставляет достаточное количество бит для позиций X, Y, если этот блок доступен и другие данные. У меня проблема: что было бы самым эффективным способом получить логическое значение, если мы сможем получить от центра этой сетки до некоторой случайной точки. Так, например, я предоставляю позиции X и Y для блока, куда я хочу идти, и метод вернет логическое значение, если есть какой-то способ через блоки ACCESSIBLE. Я сделал для этого простую картину. Спасибо за ответы. Can i get from blue to green trough whiteКак найти дорожные корыта в сетке

+1

Вы даже попытались найти эту проблему? Это стандартная проблема, и для нее существует множество алгоритмов. –

ответ

2

То, что вы описываете здесь, является известной проблемой в информатике под названием pathfinding и не является тривиальной задачей для эффективного решения.

Однако для решения этой проблемы существует несколько алгоритмов, таких как A* и Dijkstra, которые, вероятно, подходят для больших сложных карт.

Если все ваши проблемы такие же маленькие и простые, как и ваш опубликованный пример, вы также можете попытаться работать с более простым решением, например, методом поиска грубой силы (as suggested by Codor).

+0

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

+0

Ах да, это немного упростит проблему. –

+0

@CedricReichenbach в этом случае ti не кажется, что график будет взвешен, поэтому я думаю, что DFS или BFS будут делать работу просто отлично –

2

Проблема может быть решена depth-first search, где конкретная реализация сильно зависит от представления сетки, которое должно интерпретироваться как graph.

Смежные вопросы