Наводнение в Python

m совершенно новый для алгоритма Flood Fill. Я проверил это из Википедии (http://en.wikipedia.org/wiki/Flood_fill). Но нестало намного мудрее. Я'Я пытаюсь использовать его в следующей ситуации. У меня есть матрица:

matrix = [["a", "a", "b", "a", "a", "b"],
          ["a", "b", "b", "a", "b", "b"],
          ["b", "a", "b", "a", "a", "b"],
          ["b", "a", "b", "a", "b", "b"],
          ["a", "a", "b", "a", "a", "a"],
          ["a", "b", "b", "a", "a", "b"]]

Затем я позволяю пользователю выбрать одну точку из матрицы. Если в данной точке"b" ничего не сделано В другом случае, если в данном пункте есть"a" Я хочу изменить эту точку зрения ивсе окружающие или связанные точки с"a" в "с" с помощью алгоритма заливки.

Например, пустьНапример, пользователь решает матрицу [0] [0]. Тогда новая матрица будет:

matrix = [["c", "c", "b", "a", "a", "b"],
          ["c", "b", "b", "a", "b", "b"],
          ["b", "a", "b", "a", "a", "b"],
          ["b", "a", "b", "a", "b", "b"],
          ["a", "a", "b", "a", "a", "a"],
          ["a", "b", "b", "a", "a", "b"]]

Позволять'Продолжаем этот пример и говорим, что пользователь установил новую точку, матрица [3] [1]. Тогда бы мы имели:

matrix = [["c", "c", "b", "a", "a", "b"],
          ["c", "b", "b", "a", "b", "b"],
          ["b", "c", "b", "a", "a", "b"],
          ["b", "c", "b", "a", "b", "b"],
          ["c", "c", "b", "a", "a", "a"],
          ["c", "b", "b", "a", "a", "b"]]

Я пытаюсь построить функцию заливки (matrix, x, y), и до сих пор я придумал это:

def floodfill(matrix, x, y):
    if matrix[y][x] == "b":
        return matrix
    elif matrix[y][x] == ".":
        stack = []

У вас есть способ заставить меня продолжить? Пытался посмотреть примеры заливки на SOF, но они, похоже, не соответствовали моей ситуации. По крайней мере, я не былЯ не могу применить эти примеры к моему коду. Наводнение, кажется, не является такой популярной темой здесь ... Но, опять же, помощь будет высоко ценится!

Ответы на вопрос(1)

Ваш ответ на вопрос