Кожній клітці в життєвому стільниковому автоматі потрібен лише один біт, щоб представити її, оскільки вона може бути лише живою або мертвою. Це означає, що є лише два кольори; досить нудно.
Звичайні зображення мають 24 біти на піксель (8 у кожному RGB). Це означає, що в звичайному зображенні з пікселями як клітинками ви могли б імітувати одразу 24 життєвих ігри!
Виклик
Ваше завдання - написати програму, яка застосує одне покоління правил життєздатного стільникового автомата до зображення 24-бітової глибини (у будь-якому відомому форматі, який вам подобається), і виведе отримане зображення.
Кожен з 24 шарів буде використовувати той самий життєвий набір правил, строго всередині власного шару. 24 шари не взаємодіють один з одним.
Також
- Нулі - це мертві клітини, а одні - живі клітини.
- Граничні умови періодичні (утворюють торус).
- Будь-які розміри зображення повинні працювати.
Введення-виведення
Вашій програмі потрібно взяти 3 аргументи через stdin або командний рядок (або найближчий еквівалент вашої мови):
- Назва файлу вхідного зображення.
- Рядок цифр від 0 до 8 у порядку зростання, який позначає, коли народжуються нові комірки:
- Якщо цифра d знаходиться в рядку, то мертві клітини оживають, коли у них є d живі сусіди.
- Приклад:
3
нормальне життя - мертві клітини з точно трьома живими сусідами оживають.
- Рядок цифр від 0 до 8 у порядку зростання, який позначає, коли існуючі клітини виживають:
- Якщо цифра d знаходиться в рядку, то живі клітини з d живими сусідами доживають до наступного покоління, інакше вони гинуть.
- Приклад:
23
нормальне життя - до наступного раунду виживають лише клітини з рівно 2 або 3 сусідами.
Зауважте, що сусідство Мура завжди використовується. Прочитайте це чи це для отримання додаткової інформації про те, що точно визначає життєвий автомат та багато цікавих наборів правил.
Вихідне зображення 1 покоління пізніше має бути відображене або збережене як out.png
( bmp
або будь-яке інше).
Подання
Виграє найкоротший код у байтах.
Вам потрібно включити принаймні одне тестове зображення та три його найближчі наступні покоління для деяких нетривіальних наборів правил. Використовуйте свій аватар і звичайні життєві правила, якщо ви не можете придумати нічого кращого.
Якщо вам подобається, ви можете скористатися цією пістолетом Gosper Glider, де єдині живі шматочки містяться в зеленому шарі 128 (він працює лише у звичайному житті):
Настійно рекомендується розміщувати цікаві послідовності чи навіть анімації.