Игра «Жизнь» · Шаг 1 из 4
Сколько соседей
Судьба клетки в «Жизни» зависит от одного числа — сколько живых соседей у неё из восьми. Считать удобнее не от каждой клетки поля, а от живых: каждая живая клетка говорит своим восьми соседям «плюс один».
Что сделать
Посчитайте, сколько живых соседей у каждой клетки, — от живых клеток, а не от всего поля.
Что приходит
zhivye— живые клетки(ряд, столбец), множество или список; номера бывают отрицательными
Что вернуть
Словарь «клетка → сколько живых соседей из восьми» — только клетки хотя бы с одним живым соседом; годится и Counter.
Допишите функцию podschet в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В игре
Подсчёт соседей — основа правила Конвея: второй шаг получает эту функцию и по ней решает, кто родится и кто выживет. Решите шаг — и клетки перестанут вымирать все разом.
Без этого шага: соседей никто не считает — у всех их ноль, и за такт вымирает всё.
sorted(podschet([(1, 1)]).items())
[((0, 0), 1), ((0, 1), 1), ((0, 2), 1), ((1, 0), 1), ((1, 2), 1), ((2, 0), 1), ((2, 1), 1), ((2, 2), 1)]
Функция принимает живые клетки — множество или список кортежей (ряд, столбец). Возвращает словарь (годится и Counter): клетка → сколько живых соседей у неё из восьми. В словаре — только клетки, у которых хотя бы один живой сосед. Клетка соседом самой себе не считается. Поле не ограничено: номера рядов и столбцов могут быть отрицательными.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.