46 FreeBASIC. Программируем "Жизнь"

Мой второй пост на голосе был о "Жизни", о простенькой игре, но это лишь на первый взгляд простой. Даже узнав о ней я просто поражался ею, но когда я увидел её в интернете... это оказалась не просто "Жизнь" - это целая ВСЕЛЕНАЯ.

Её простота в простых правилах, но в этих правилах нашли столько жизни - поэтому её так и назвали.

Я поначалу так и думал что это просто забава, забавная игра, но эта игра повлияла на многие точные науки - математику, информатику, физику. И даже больше - она имеет схожесть со многими другими, не "точными" науками)) - биология, бактериология, физиология, социология, философия...и много других. Ею знанимались и занимаются многие учёные.

Сейчас я вспоминаю о ней лишь в контексте программирования.

ну какой программист не писал её реализацию, нашёл опрос на Хабре

Когда я писал её впервые на своем ZX клоне, мне не хватало его быстродействия, я использовал компиляторы(в то время это были ускорители программ) а на финише написал "Жизнь на ассемблере"... увидев всю его красоту(ассемблера)

Правила "Жизни" Конвея

Жизнь эволюционирует на клеточном поле, которое может быть бесконечным, ограниченным или замкнутым.

Каждая клетка имеет восемь соседей - клетки её окружающие.

Клетка выживает, переходит в следующее поколение, если у неё 2 или 3 соседа. Еслиже соседей больше трёх или меньше двух - клетка погибает.

Рождение. Если у пустой клетки ровно три соседа - там рождается новая клетка.

Как видно правила очень просты.

Многие, даже маленькие изначально конфигурации, могут разрастаться до огромных размеров, занимает сотни, тысячи поколений и просчитать это всё вручную невозможно.

Сейчас есть потрясающие программы для исследования колоний(конфигураций клеток), в некоторых программах есть даже другие правила "Жизни", но много-много лет назад программу приходилось писать самому.

Исследуем эволюцию лини шести клеток

1 поколение - слева и справа клетки погибают, а сверху и снизу появятся по 4 новые клетки

На втором поколении получится прямоугольник 4х3 клетки, средние погибнут от перенаселения, сверху/снизу появятся по две клетки. Справа и слева - по одной.

В третьем поколени погибших нет, а в середине фигуры появятся шесть новых клеток.

В четвёртом ходу гибнут почти все клетки, но восемь новых появляется.


На седьмом ходу появится такая конфигурация. Мне стоило подробней описать как я "рисую" ходы, что я и сделаю на примере седьмого хода

Перерисовую начисто фигуру которая появляется после 6 хода.

Закрашиваю те клетки которые погибнут,(их не будет в следующем поколении)

Точками отммечаю те места, где в следующем поколении появятся новые клетки.

И рисую новую ступень эволюции.

А что будет с колонией дальше??

программированиеfreebasicкомпьютерыsgfbsgpgобучениеобразование
804
556.835 GOLOS
0
В избранное
Сергей
Кибернетик... а кто это? deals.weku.io/@sergiy, serey.io/@sergiy, whaleshares.io/@sergiy, sola.ai/nsergiy
804
0
Комментарии (5)
Сортировать по:
Сначала старые
Зарегистрируйтесь, чтобы проголосовать за пост или написать комментарий
Авторы получают вознаграждение, когда пользователи голосуют за их посты. Голосующие читатели также получают вознаграждение за свои голоса.