Гра життя і стомлення Стюі досить схожа на більш відому «Гра життя» Конвея .
Всесвіт Гра життя і втоми Стіуї (GoLF) - це нескінченна двовимірна ортогональна сітка квадратних комірок, кожна з яких знаходиться в одному з трьох можливих станів, живих, мертвих або втомлених. Кожна клітина взаємодіє зі своїми вісьмома сусідами, які є клітинами, розташованими горизонтально, вертикально або по діагоналі. На кожному кроці часу відбуваються такі переходи:
- Будь-яка жива клітина, яка має менше двох живих сусідів, гине, як би спричинена недонаселенням.
- Будь-яка жива клітина з двома-трьома живими сусідами живе наступним поколінням.
- Будь-яка жива клітина з більш ніж трьома живими сусідами гине, як би від перенаселення.
- Будь-яка мертва клітина з рівно трьома живими сусідами перетворюється на живу клітину, як би відтворенням.
- Будь-яка клітина, яка жила вже два покоління поспіль, гине, ніби від втоми. Він не може знову прокинутися до життя до наступного покоління
- Будь-яка комірка, яка знаходиться за межами вхідної сітки, мертва, ніби вона впала зі скелі.
Виклик:
Ваше завдання полягає в тому, щоб взяти сітку розмірів n-by-m, що представляє початковий стан GoLF, і ціле p , і вивести стан гри після p поколінь.
Правила:
- Формати введення та виведення необов’язкові, але сітки вводу / виводу мають бути однаковими
- Ви можете вибрати будь-які символи для друку, які представлятимуть живі та мертві клітини (я буду використовувати
1
для живих клітин та0
для мертвих комірок). - Ви можете вибрати, якщо у вас 0 або 1-індексований. У прикладах
p=1
означає стан після одного кроку. - Виграє найкоротший код у кожній мові
- Вбудована функція для стільникової автоматизації дозволена
Тестові приклади:
У прикладах я включив лише вхідну сітку у вхід, а не p . Я надав результати для різних p- значень. Ви повинні вивести лише сітку, яка йде із заданим входом p .
Input:
0 0 0 0 0
0 0 1 0 0
0 0 1 0 0
0 0 1 0 0
0 0 0 0 0
--- Output ---
p = 1
0 0 0 0 0
0 0 0 0 0
0 1 1 1 0
0 0 0 0 0
0 0 0 0 0
p = 2
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
p = 3 -> All dead
---
Input:
0 1 0 0 0 0
0 0 1 0 0 0
1 1 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
--- Output ---
p = 1
0 0 0 0 0 0
1 0 1 0 0 0
0 1 1 0 0 0
0 1 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
p = 2
0 0 0 0 0 0
0 0 0 0 0 0
1 0 0 0 0 0
0 1 1 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
p = 3
0 0 0 0 0 0
0 0 0 0 0 0
0 1 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
p = 4 -> All dead
Input
0 1 1 0 1 1 0
1 1 0 1 1 1 1
0 1 0 0 0 1 0
0 0 0 1 1 0 1
1 0 0 1 0 1 1
0 0 1 1 0 1 1
1 1 0 0 0 0 1
--- Output ---
p = 1
1 1 1 0 0 0 1
1 0 0 1 0 0 1
1 1 0 0 0 0 0
0 0 1 1 0 0 1
0 0 0 0 0 0 0
1 0 1 1 0 0 0
0 1 1 0 0 1 1
p = 2
1 0 0 0 0 0 0
0 0 0 0 0 0 0
1 0 0 1 0 0 0
0 1 1 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 1 1 0 0 0
p = 3
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 1 1 0 0 0 0
1 1 0 0 0 0 0
0 1 1 0 0 0 0
0 0 1 0 0 0 0
0 0 0 0 0 0 0
p = 4
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 1 1 0 0 0 0
1 0 0 0 0 0 0
1 0 1 0 0 0 0
0 1 1 0 0 0 0
0 0 0 0 0 0 0
p = 5
0 0 0 0 0 0 0
0 1 0 0 0 0 0
1 0 0 0 0 0 0
0 0 1 0 0 0 0
1 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
p = 6
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 1 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
p = 7
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 1 1 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
p = 8
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 1 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
p = 9 -> All dead
Так, я знаю, що всі початкові насіння не закінчаться в усіх клітинах мертвими.