Представим сетку, состоящую из ячеек (по типу таблицы). Размер сетки – 20х20. У каждой ячейки есть только одно из двух состояний – «открыта» и «закрыта». Требуется реализовать алгоритм, который проверял бы следующее: возможно ли, двигаясь от произвольной открытой ячейки сверху, попасть хотя бы в одну открытую нижнюю ячейку данной сетки? Представьте это себе, как движение воды под гидростатическим давлением через пустоты породы или почвы (percolation). Этапы выполнения задачи:
- Описать структуру поля и каждой его ячейки;
- Реализовать функцию (алгоритм), которая бы принимала на вход поле и
возвращала результат (булево значение) - возможно ли пройти данное
поле сверху-вниз;
- Написать тесты, в том числе с генерацией случайного поля и его
проверкой;
- Оценить вычислительную сложность функции (алгоритма).