Вложенные структуры · 13 из 16
Огонь из пикселей
В играх девяностых огонь рисовали без единой картинки огня. Нижний ряд экрана — угли, им каждый кадр дают случайный жар. Каждая клетка выше берёт среднее трёх клеток прямо под собой и чуть остывает. Жар поднимается вверх, расплывается и гаснет — выходит пламя, которое пляшет само.
Что сделать
Сделайте один шаг огня: каждая клетка, кроме нижнего ряда, — среднее трёх клеток под ней минус остывание, не меньше нуля.
Что приходит
setka— список рядов с целыми числами-жаром; последний ряд — нижний, угли; её саму менять нельзяostyvanie— на сколько клетка остывает за шаг, целое
Что вернуть
Новую сетку того же размера — список новых рядов.
Допишите функцию shag_ognya в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой
[[0, 0, 0], [9, 9, 9]], остывание 1: под каждой верхней клеткой три девятки — 9 + 9 + 9 = 27, 27 // 3 = 9, минус 1 — 8. Угли не меняются: [[8, 8, 8], [9, 9, 9]].
shag_ognya([[0, 0, 0], [9, 9, 9]], 1)
[[8, 8, 8], [9, 9, 9]]
Для каждой клетки ряда y (кроме последнего) и столбца x:
жар = (setka[y + 1][x − 1] + setka[y + 1][x] + setka[y + 1][x + 1]) // 3 − ostyvanie, но не меньше 0. Слева от первого столбца — последний, справа от последнего — первый: ряд замкнут в кольцо. Считается по старой сетке: новые значения соседних рядов не используются. Последний ряд копируется как есть. Деление — нацело (//): жар — целые числа.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.