Игра на живот
- Краен срок:
- 02.04.2012 23:59
- Точки:
- 6
Срокът за предаване на решения е отминал
Играта "живот"
Промяна
Имахме бъг в примерния тест, за което се извиняваме. В GitHub ще намерите новият тест.
Играта "живот" на Конуей е вид клетъчен автомат. Играта се играе от 0 (нула) на брой играчи, върху повърхнина разделена на квадратни клетки. Всяка клетка е или жива, или мъртва. "Играта" протича на ходове, като състоянието на всеки ход се определя от състоянието на предишния и от следните правила (из wikipedia):
- Всяка жива клетка с по-малко от две живи съседни клетки умира (от самота).
- Всяка жива клетка с повече от три живи съседни клетки умира (от пренаселеност).
- Всяка жива клетка с две или три живи съседни клетки остава жива и на следващата итерация.
- Всяка мъртва клетка с точно три живи съседни клетки се превръща в жива клетка.
Тъй като е пролет и настроението ни е повишено, решихме да ви улесним като:
- Не ви тормозим със сложни топологии, а само с Ограничена равнина (48x48)
- Ви дадем функции за създаване на случайна дъска и за нейното печатане.
Структурата на дъската е един списък за редове, съдържащ вложени списъци със стойностите на всяка клетка от реда. Стойноста на всяка клетка се означава с 0, ако е мъртва или 1, ако е жива. За ваше улеснение добавяме по един ред/колона с нули на всяка страна от дъската. Дъска 48x48 трябва да съдържа 50 списъка с 50 стойности всеки.
От вас се иска да свалите solution.py
и да имплементирате функцията step_board()
, която променя аргумента си board
до следващата стъпка от играта.
За да знаете дали сте успели изпълнете тестовете с:
python3 sample_test.py
Подсказка: Ние ще гледаме само най-ниския бит за всяка клетка, тъй че 1, 3, 5, 7 все са живи, докато 0, 2, 4, 8 все са мъртви. Възползвайте се.