Перейти к содержимому
Taoshi

Эволюция (John Conway's Game of Life)

Рекомендуемые сообщения

Примитивная, но широко известная в узких кругах игра "Жизнь" является клеточным автоматом, придуманным английским математиком Джоном Конвеем в 1970 году, который упростил идеи предложенные его тёзкой Нейманом. Подробно можно почитать на Вики.

 

Реализацию этого клеточного аппарата на луа я и

 предлагаю всем, кого он может заинтересовать.

 

Где скачать:

wget https://raw.githubusercontent.com/Zardar/evolution/evolution_1.0/evolution.lua evo.lua (старая версия)

pastebin run yhLh5UJS (старая версия на пастебин, предоставлена Kraniov)

pastebin run cUiuZpL1 (новая версия на пастебин)

Новая версия на гитлаб: https://gitlab.com/doomiurg/evolution/-/raw/main/evolution.lua

 

Предпросмотр:

 


https://i.imgur.com/ttZijEP.mp4

 


hnzc8oV.png
 

 

 

  • Стиль: классический чёрно-белый.
  • Скорость: не регулируется. Надеюсь, это самое быстрое недоразумение с псевдографикой, что вы видели в луа на Open Computers. В целом, есть возможность немного увеличить производительность, но фактической необходимости нет. Впрочем, если вам удастся генерация на 20000 точек, то мне интересно будет узнать подробности.
  • Разрешение экрана - любое доступное. Игра не запрашивает и не меняет его. Но - при узком экране не будут видны все названия кнопок.
  • Компоненты системного блока - однотирные с экраном. Впрочем, это не критично.

 

  • В игре реализованы: редактор центральной части поля, пауза, рестарт, выход, очистка экрана.

 

  • Присутствуют небольшие недочёты в gui. Так же некоторые несмертельные недочёты возникают при переходе из режима отрисовки поля в паузу, из неё в редактор и обратно. И при переходе из редактора в паузу и обратно.
  • Отсутствуют пресеты.  Возможно, будут в необозримом будущем.

 

Буду благодарен за замечания

Изменено пользователем Taoshi
Добавил новые ссылки на старую и новую версию

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Изменен редактор. Теперь редактируется всё игровое поле. Но маааленькими точками. А было не всё, но большими.

Исправлена небольшая ошибка немного снижавшая производительность. Также изменена (не критичная по влиянию на общее быстродействие часть) конкатенация строки перед выводом на экран. 

Исправлена критическая ошибка приводившая к вылету после последовательности операций play -> stop -> edit -> play

Дорисована рамочка вокруг игрового поля и покрашена в светло-зелёный. (На т2 экране не проверялось)

Покрашены надписи в разных режимах в разные цвета.

Изменены правила перехода между состояниями (s)(p)(e)(c)(t)(r), теперь можно перейти почти в любой режим из любого. Теперь не надо stop -> edit -> -> play, можно сразу в edit.

Добавлена возможность пропуска нескольких поколений. Включается в ручную на третьей строке.

Добавлено три пресета. Автозапуск с третьего. Фигурка носит название "жёлудь", самая долгоживущая из известный маленьких фигур. Возможности выбора между пресетами из GUI не добавлены (но вы всегда можете поискать, найти, и сменить или доделать, да)

 

На этом пока всё

Ах да, чуть не забыл:

https://gitlab.com/doomiurg/evolution/-/raw/main/evolution.lua

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В режиме редактирования добавлена отрисовка линий при смещении курсора за единицу времени больше чем на символ брайля. Идея предоставлена Fingercomp'ом, за что благодарю. Самому в голову не пришло :-)

П.С.: В виду тонкой душевной организации ОС в случае притормажевания возникает необходимость подержать кнопку мыши после движения, чтобы дождаться пока прилетят события и кривые отрисуются. Но фактически стек в функции не используется, это всё видимость. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

всем привет я зарегистрировал свой аккаунт

держите команду pastebin run yhLh5UJS это копия скрипт но пользователи могут заходить

я создал код от pastebin для того чтобы заходили оченью и я занимался оченью много времени

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Kraniov сказал:

я создал код от pastebin для того чтобы заходили оченью и я занимался оченью много времени

Чем занимался и зачем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
12 часа назад, Kraniov сказал:

всем привет я зарегистрировал свой аккаунт

держите команду pastebin run yhLh5UJS это копия скрипт но пользователи могут заходить

я создал код от pastebin для того чтобы заходили оченью и я занимался оченью много времени

Благодарю. 

В действительности связь из игрового мира сервера с гитхабом не на всех серверах доступна и в таких случаях pastebin удобное решение. Жаль только версия взята из первого поста темы, а она старая. Но тут больше моя вина, надо было обновить ссылку.

 

Изменено пользователем Taoshi

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...