Есть ли какой-либо быстрый способ узнать, если две точки на двумерной булевой области подключены, и вы можете шагать только вверх, вниз, влево и вправо на квадрате со значением True? Допустим, вы бы следующие 6x6 2D список:Проверка наличия двух точек в логическом двумерном списке
В коде, который был бы:
bool2DList = [6][6]
bool2DList = { True, True, False, False, True, True,
False, True, True, False, True, True,
False, True, True, False, False, True,
False, False, False, False, False, True,
False, False, False, False, True, True,
False, True, True, True, True, True }
Зеленые квадраты имеют значение Истинные и синие Ложные. Я думал о функции (она, вероятно, должна быть рекурсивной), в которую вы бы поместили 2D-список в качестве аргумента вместе со списком кортежей (координат) нескольких точек и окончательным одним кортежем специальной точки, он мог иметь заголовок например:
def FindWay(bool2DList,listOfPoints,specialPointCoord)
В этом примере особой точкой будет точка P с координатами 5; 1. Представим себе, что вы начнете идти от этих особых точек. Какие моменты вы могли бы достичь, не наступая на синие квадраты? В этом примере только точки P4 и P5 (выход может быть обозначен координатами этих точек, поэтому 0; 5 и 5; 3). Это, вероятно, должно быть рекурсивным, но я понятия не имею, как должно выглядеть тело.
спасибо.
У вас есть код для отображения здесь. SO не является службой записи кода. Вы должны быть гораздо более откровенными в своей проблеме. – idjaw
Нет, я не очень уверен, с чего начать. – TheTask1337
...это не вопрос. – jonrsharpe