Страницы: Пред. 1 2 3
RSS
Клеточные автоматы
 
Цитата
 VSerg написал:
Игрался с автоматами на .NET, но так далеко не зашел  
Если остались наработки, выкладывайте, посмотрим.
Изменено: bedvit - 16.03.2019 08:40:40
«Бритва Оккама» или «Принцип Калашникова»?
 
bedvit,
Разобрался, спасибо. Может вам стоит как то подсветить кнопки ? Что бы было нагляднее, включены ли режимы "Автомасштаб" и "Ареал по живым" или нет. И еще, если со всеми шаблонами автомасштаб работает, то шаблон p416_60P5H2V0_gun отображается не совсем корректно. Хотя это все уже капризы и сделано, как я говорил, здорово.

Свой проект попробую найти, но хвалится там особо нечем.
 
VSerg, спасибо за оценку.
Цитата
VSerg написал:
это все уже капризы
, это не капризы, а дельное замечание, если это  действительно так. Но я смотрю на приложенном скрине автомасштабирование выключено, см. ниже.
Цитата
VSerg написал:
Может вам стоит как то подсветить кнопки ? Что бы было нагляднее, включены ли режимы "Автомасштаб" и "Ареал по живым" или нет.
в инфо панели два нижних параметра как раз и показывают включены ли эти функции или нет. Протестируйте с учётом новых данных.
«Бритва Оккама» или «Принцип Калашникова»?
 
Сейчас подумал, что возможно нагляднее сделать не "ВКЛ", "ВЫКЛ", а ОN, OFF, или ДА,НЕТ, т.к. сильнее бросается в глаза.
«Бритва Оккама» или «Принцип Калашникова»?
 
bedvit, Извиняюсь, не обратил внимания на статус панель. Однако, шаблон p416_60P5H2V0_gun все равно ведет себя не как остальные.
 
VSerg, верно. Поправил, дело было в округлении (в механизме масштабирования). Сохранил новую версию в посте №58 Дело было не в шаблоне. Кстати по теме шаблонов - вот интересный шаблон (прилагаю). Сборщик (Breeder 1) собирает ружья Gosper, которые в свою очередь собирают планеры. Фабрика производящая другие фабрики)
Breeder 1
Изменено: bedvit - 18.03.2019 14:13:28
«Бритва Оккама» или «Принцип Калашникова»?
 
Видео
Изменено: bedvit - 18.03.2019 14:07:47
«Бритва Оккама» или «Принцип Калашникова»?
 
15/04/2019 Обновление версии: Life v1.5.0.0 - Завершение проекта
1. Оптимизирован алгоритм расчета, итого с 1й версии до 5й скорость выросла с 26 поколений в секунду до 232 п./с. на примере фигуры ("p416 60P5H2V0 gun") (27 тыс. живых клеток).
2. Расширен диапазон MAX количества живых клеток - до 10 млн. (за счет резервирования большего количества памяти), построение на примере фигуры Max, (в прилагаемых шаблонах есть). С проверкой переполнения.
3. Немного переработан интерфейс, разделил вывод и ввод, мелкие оптимизации для правильной работы с клавиатуры.
4. Планировал перейти на 3D (работу начал, но на это нужно время, которого сейчас нет, и в ближайшем будущем не будет на этот проект) посему выкладываю рабочие исходники данной версии на WinAPI, может кто-то напишет лучше, подключит Direct3D или в целях самообразования просто попилит код.
Код писал в целях обучения, еще есть где оптимизировать, к примеру контролируемое перехеширование и перезапись итераторов, позволит изначально использовать меньше памяти (резервировать меньше изначально). Можно, к примеру, уйти от хеш-таблиц, создать динамический выделяемые блоки памяти (к примеру по 1024*1024 байт), с контролем времени жизни (есть/нет живые клетки). С ними линейные скорости чтения, поиска (мы знаем адрес), записи. Перемещение - смещение на степень двойки очень быстрая процедура. Но опять же, есть и свои подводные камни. А времени нет додумать концепцию и реализовать.
Исходники с комментариями на русском, распространяются как есть, под свободной лицензией.
Репозиторий: https://github.com/bedvit/Life
Изменено: bedvit - 26.04.2019 12:22:49 (Актуализация версии Life v1.5.0.0 )
«Бритва Оккама» или «Принцип Калашникова»?
 
Шаблоны.
«Бритва Оккама» или «Принцип Калашникова»?
 
Выявилась интересная особенность для игрового поля в Life размером от -2147483648 до 2147483647 (по каждой из координат).
Т.к. в языке С/С++ переполнение знакового целого не отслеживается и строго говоря это является undefined behaviour. Однако на практике, n-разрядные целые в C++ (да и во многих других языках) ведут себя как остатки по модулю 2^n: при вычислении "переполненного" значения разряды старше n-го просто отбрасываются.
Т.е. при прибавлении единицы к 2147483647 (двоичное 0111 1111 1111 1111 1111 1111 1111 1111) число превращается в  -2147483648 (двоичное 1000 0000 0000 0000 0000 0000 0000 0000), т.е. в терминах игры Life происходит закольцовка игрового поля по координатам.

Если убрать самостоятельную проверку и контроль памяти в коде, интересным следствием этого действия станет тот факт, что через 8 млрд. ходов, самый быстрый космический корабль Lightweight_spaceship (скорость - половина от световой), пройдя 4 млр. клеток - вернется в свое изначальное положение.
Проверено! :)
Версию Life v1.5.0.0 обновил, с учетом этой интересной особенности.
«Бритва Оккама» или «Принцип Калашникова»?
 
13/05/2019 Обновление версии: Life v1.7.0.0 - Игровое поле, пользовательские сообщения
1. Реализована закольцовка игрового поля по по X, Y координатам.
2. Реализован правильный механизм масштабирования на границах
3. Увеличен диапазон масштабирования до 1 млр. клеток на один пиксель, теперь всю вселенную можно уместить на экран и даже в несколько пикселей (удобно при масштабировании/поиске сильно отдаленных друг от друга объектов).
4. Добавлены пользовательские сообщения (о выходе за рамки игрового поля и т.д.)
5. Исправлены некритичные ошибки.
6. Репозиторий обновлен.
В итоге: теперь программа представляется, как вполне законченная.
«Бритва Оккама» или «Принцип Калашникова»?
 
Life v1.9.0.0 - Увеличена производительность, исправил автоматический сброс всех параметров при создании нового шаблона.
Выложил на свой сайт, теперь всегда актуальная версия здесь: https://bedvit.ru/life/
Изменено: bedvit - 05.02.2021 16:13:09
«Бритва Оккама» или «Принцип Калашникова»?
 
bedvit, ура! Сайт наконец появился!  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, да решил немного потренироватся в JavaScript и HTML. Сайт больше как хранилище наработок. С народом поделится. Довести до ума руки не доходят :)
«Бритва Оккама» или «Принцип Калашникова»?
Страницы: Пред. 1 2 3
Наверх