Описание
Life is life - это интересная программа. Вспомнил старое увлечение математической игрой Конвея "Жизнь". Сложно, конечно, назвать игрой эволюцию клеточных автоматов. Но наблюдение за развитием псевдопопуляции неких организмов действительно захватывает.
Основные замечания по реализации
- Требуется DirectX 8.0 и выше.
- Высокая скорость пересчета новой итерации (тест на Celeron 1700, объект из библиотеки: builder->max, алгоритм - Blockscan, итерация - 1980, число точек - 999116, время итерации 0.500 секунды).
- Два алгоритма пересчета на выбор пользователя.
- Алгоритм Ascetic. Оптимален для объектов, которые содержат мало ячеек, но занимают весьма большую площадь. Использует оперативную память скромно. Первая итерация выполняется на порядок дольше последующих итераций. Что связано с начальным упорядочением точек.
- Алгоритм BlockScan. Оптимален для большого числа клеток расположенных кучно. В процессе оптимизации, правда, вышло так, что практически всегда BlockScan быстрее, чем Ascetic.
- Вывод времен расчета итерации (dTc) и рендеринга картинки (dTr).
- Функция BOM - Back One Move.
- Большая встроеная библиотека объектов с возможностью расширения её пользователем. Загружайте и комбинируйте.
- Ручное(колесико мышки, правые клики) и автоматическое масштабирование и центровка.
- Простейшие операции с выделенными фрагментами - повороты на 90 градусов и отражение.
- Границы или края зоны симуляции отсутствуют! Как бы далеко не улетели ваши глайдеры, это не имеет значения. - Возможность пакетного расчета - вычисление нескольких итераций без отображения на экран, что удобно для наблюдения за движением.
- Импорт из распространенного в интернете формата *.life.
- Ну и конечно возможность ручного задания объектов (левые клики мышью).