Визуализация клеточных автоматов
Описание
Клеточный автомат — дискретная модель, включающая в себя регулярную решётку ячеек, каждая из которых может находиться в одном из конечного множества состояний, таких как 1 и 0. Решетка может быть любой размерности. Для каждой ячейки определено множество ячеек, называемых окрестностью. Для работы клеточного автомата требуется задание начального состояния всех ячеек и правил перехода ячеек из одного состояния в другое. На каждой итерации, используя правила перехода и состояния ячеек из окрестности, определяется новое состояние каждой ячейки.
В этом варианте задания предлагается реализовать приложение, визуализирующее эволюции различных клеточных автоматов из заранее выбранного набора. Этот набор может включать в себя такие автоматы, как:
- элементарные клеточные автоматы, например, правило 30 или правило 110;
- муравей Лэнгтона;
- черви Патерсона.
Минимальные требования (базовая часть)
Базовая реализация проекта, в которой должны разбираться все участники, должна содержать:
- выбор клеточного автомата из каталога с описанием (не менее 4 различных автоматов);
- визуализацию и моделирование фиксированной сцены для выбранного автомата;
Расширенный интерфейс (индивидуальная часть)
Расширенный интерфейс должен добавлять хотя бы 2 различные возможности к базовому интерфейсу. Ниже перечислены возможные варианты расширения интерфейса, однако этим списком они не ограничены:
- меню выбора сцены;
- интерфейс сохранения/загрузки;
- настройки поля-вселенной (размер поля, цвет клеток и т.п.);
- редактор сцены (указание начального состояния);
- управление моделированием:
- пауза/продолжение;
- ускорение/замедление;
- перемотка;
- и т.д.
Работа с базой данных (индивидуальная часть)
Модуль для работы с базой данных должен предоставлять хотя бы 2 различных возможности:
- база сцен;
- база объектов;
- и т.д.