Все игры:
- Симулятор игры "Жизнь" ("Game of life") на WPF
- Классическая игра сапер (Minesweeper). Клон на С#,WPF
- Сетевые шахматы (Network Chess)
Исходный код:
Game of life.zip
Скомпилированная версия
.NET Framework 4.0
Требуемая версия установленного Framework.
Однажды, просматривая видео на youtube, я наткнулся на крайне занимательный рассказ про клеточные автоматы. Они мне настолько понравилось, что захотелось самому увидеть их работу, а так же реализовать алгоритм на языке C#. Ссылка на то видео:
В нём достаточно хорошо все рассказано, поэтому в данной статье будет только краткое описание алгоритма и пример реализации.
Алгоритм (правила) работы клеточных автоматов.
Действие разворачивается на бесконечном поле в решётку. На каждом кадре анимации (называемом поколением), мы обходим все ячейки и вычисляем количество стоящих по периметру закрашенных клеток. Посчитав, выполняем два правила:- Клетка закрашена. Если вокруг клетки ровно 2 или 3 закрашенные клетки, тогда с ней ничего не случается и она живёт, иначе становится пустой.
- Клетка пустая. Если вокруг ровно 3 закрашенные клетки, тогда в клетке зарождается жизнь и она становится закрашенной.
Пример на C# + WPF.
Исходный код своего проект я разместил на bitbucket.org, ссылка на проект размещена в начале статьи. Так же можно скачать (выше) собранную версию, но для её работы необходимо наличие предустановленного .NET Framework 4.0.
Интерфейс программы:
Элементы управления:
- Меню содержит пункты:
New - создание нового чистого поля.
Open - открытие сохранённого поля.
SaveAs - сохранение текущего заполненного поля - Содержит пункты запуска и остановки цикла "Жизни"
- Окно "Об авторе"
- Дублирует кнопки меню Life.
- Номер текущего поколения с начала запуска поля.
Рисовать можно по точечно левой кнопкой мыши, либо зажав левую кнопку водить мышку по полю, оставляя след. Для стирания точек можно по ним повторно нажимать, либо если требуется полная очистка - тогда использовать пункт меню File -> New. При этом можно участвовать в процессе и добавлять клетки пока идёт игра.
Примеры:
В папке examples содержатся несколько примеров автоматов с необычным поведением.
В интернете можно найти много примеров схем я же только даю инструмент для их создания.
Комментариев нет:
Отправить комментарий