Вложенные структуры · 9 из 18
Пещеры из шума
Кружок информатики делает к дню открытых дверей бродилку по пещерам, и Маргарита Львовна не разрешает рисовать карты руками: «Пусть их рисует программа». Рецепт известный: засыпать карту случайными камнями — выйдет шум, — а потом несколько раз сгладить: где вокруг клетки много камня, там камень, где мало — пусто. Шум за пять-шесть сглаживаний сам собирается в залы и коридоры, и каждая новая затравка — новая пещера.
Что сделать
Сгладьте карту один раз: каждая клетка смотрит на восемь соседей и решает, быть ли ей камнем.
Что приходит
karta— карта: список рядов, ряд — список чисел, 1 — камень, 0 — пусто
Что вернуть
Новую карту того же размера — список списков из 0 и 1; переданную не менять.
Допишите функцию sgladit_peshcheru в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
Карта 3 × 3 с одним камнем в середине. Угол видит за краем пять «камней» и ещё камень в середине — шесть, он становится камнем. Клетка посередине края видит три камня за краем и середину — четыре, остаётся пустой. Середина видит ноль и пустеет: [[1, 0, 1], [0, 0, 0], [1, 0, 1]].
sgladit_peshcheru([[0, 0, 0], [0, 1, 0], [0, 0, 0]])
[[1, 0, 1], [0, 0, 0], [1, 0, 1]]
Для каждой клетки посчитайте камни среди восьми соседей — по сторонам и по диагоналям; саму клетку не считать. Сосед за краем карты считается камнем: края пещеры — скала.
- 5 камней и больше — клетка становится камнем (1);
- 3 и меньше — пустой (0);
- ровно 4 — остаётся, какой была.
Все клетки решают по старой карте, одновременно: новая карта собирается отдельно, переданная не меняется.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.