Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Игростроение лингвофорумчан

Автор Demetrius, декабря 1, 2010, 19:21

0 Пользователи и 1 гость просматривают эту тему.

Awwal12

Цитата: Easyskanker от мая 28, 2021, 17:55
Понятно, откуда вы этой клюквы понабрались. Непонятно, почему вы на нее ведетесь. Вы как будто из любого массового мнения стараетесь сделать себе священную корову.
Простите, но вы бредите. Я проходил Фолауты за годы до того, как у меня вообще появился доступ в Интернет (и ещё годы после, в процессе выложив на Фолаутсайте полтора своих фанфика).
Фашиствующий имперец, асексуал и многожёнец, татарофоб, заслуженный функционер РПЦ. Слушает радио "Радонеж" и терпеть не может счастливых людей.

"Да здравствуют ДОЯРКИ!! Потому что доярки - это раса сверхчеловеков. За ними будущее планеты. Они переживут даже атомную войну, потому что доярки вечны, ибо хтоничны. И дадут потомство, которое тоже будет доярами и доярками. Ура, товарищи!.." (c) Awwal12

Easyskanker

Цитата: Awwal12 от мая 28, 2021, 18:02
Цитата: Easyskanker от мая 28, 2021, 17:55
Цитата: Awwal12 от мая 28, 2021, 11:53
Ваш "дамоклов меч" - это как бы решаемые локальные проблемы, решение которых, в общем, и составляет основу игрового сюжета. Сам дух американского постапокалипсиса - это "жизнь дерьмо, но мы с лопатой". С глубокой  органической депрессивностью русскоязычных продуктов типа "Метро-2033" сравнивать это малоосмысленно, как по мне.
Понятно, откуда вы этой клюквы понабрались. Непонятно, почему вы на нее ведетесь. Вы как будто из любого массового мнения стараетесь сделать себе священную корову.
Простите, но вы бредите. Я проходил Фолауты за годы до того, как у меня вообще появился доступ в Интернет (и ещё годы после, в процессе выложив на Фолаутсайте полтора своих фанфика).
Вот вы и спалили сами себя. Перечитайте внимательно: речь шла о стереотипе про депрессивность русских и позитивность американцев. Но вам настолько важно выдавать себя за олдфага, что вы увидели укол в сторону вашей олдфажести там, где его не было, еще и обиделись до прямых оскорблений.

Easyskanker

Буд, а в игре жизни как считывается: построчно в цикле слева-направо, сверху-вниз? У меня каждая клетка обсчитывает окрестность Мура вокруг себя самостоятельно, все клетки считают вокруг себя одновременно, и разница скорее всего из-за этого.

Awwal12

Цитата: Easyskanker от мая 28, 2021, 18:11
Перечитайте внимательно: речь шла о стереотипе про депрессивность русских и позитивность американцев.
Пардон, но как минимум в этом случае это факт, данный нам в ощущениях.
Цитата: Easyskanker от мая 28, 2021, 18:11
Но вам настолько важно выдавать себя за олдфага
Drivel on, it's quite amusing.
Фашиствующий имперец, асексуал и многожёнец, татарофоб, заслуженный функционер РПЦ. Слушает радио "Радонеж" и терпеть не может счастливых людей.

"Да здравствуют ДОЯРКИ!! Потому что доярки - это раса сверхчеловеков. За ними будущее планеты. Они переживут даже атомную войну, потому что доярки вечны, ибо хтоничны. И дадут потомство, которое тоже будет доярами и доярками. Ура, товарищи!.." (c) Awwal12

Easyskanker

Цитата: Awwal12 от мая 28, 2021, 20:00
Пардон, но как минимум в этом случае это факт, данный нам в ощущениях.
Спросите об этом "факте" Рокки, а я посмотрю.

Цитата: Awwal12 от мая 28, 2021, 20:00
Drivel on, it's quite amusing.
Ну, если бы вы не взбесились не на том месте и не кидались оскорблениями на русском и английском, еще можно было бы поверить, что для вас это не имеет значения.

Easyskanker



В общем, действительно, всё дело в том, что в оригинальной "Жизни" проверка построчная, а у меня клетки обсчитывают свои окрестности Мура самостоятельно, как живые организмы. Учитывая, что для живых организмов и вообще для любых объектов природы, включая атомы, построчная проверка невозможна, попытки натянуть сову "Жизни" на глобус реальности профанация.

Easyskanker

На видео автомат со стандартным правилом B3/S23, сначала рисую глайдер, потом двигаю вперед по кадру, потом нажимаю воспроизведение. В оригинале глайдер стал бы ползти вверх, с самостоятельными же клетками складывается лабиринт. На 1:20 очищаю поле и рандомизирую его клетки, потом снова запускаю. Получается опять же лабиринт.

Bhudh

Цитата: Easyskanker от мая 28, 2021, 18:11Буд, а в игре жизни как считывается: построчно в цикле слева-направо, сверху-вниз? У меня каждая клетка обсчитывает окрестность Мура вокруг себя самостоятельно, все клетки считают вокруг себя одновременно, и разница скорее всего из-за этого.
Цитата: Easyskanker от мая 28, 2021, 20:27всё дело в том, что в оригинальной "Жизни" проверка построчная, а у меня клетки обсчитывают свои окрестности Мура самостоятельно, как живые организмы
В "Жизни" изначально просчитывается сразу всё поле и меняется единомоментно. Других правил не знаю.
Как вообще можно построчно считать такие вещи? За такт менять окрестность одной клетки, за следующий такт — следующей и т. д.?
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Bhudh

Цитата: Easyskanker от мая 27, 2021, 18:20Правило, кстати, простое, как три рубля: если из восьми клеток вокруг белой клетки более шести черные, клетка становится черной; если из восьми клеток вокруг черной клетки более трех белые, клетка становится белой.
Вы как-то нестандартно правило определяете.
По классике даётся интервал количества соседей, при котором "живая" клетка выживает, а потом интервал, при котором "мёртвая" клетка становится "живой".
Для классической это 23/3, то есть если у "живой" клетки 2 или 3 "живых" соседа, клетка остаётся на следующее поколение, а если у "мёртвой" клетки 3 "живых" соседа, клетка становится "живой" в следующем поколении.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Bhudh

Кстати, в Mirek's Celebration есть пара правил с названиями Maze (12345/3) и Mazectric (1234/3), и они ну очень напоминают Ваше по действию.

Цитата: Maze
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Toman

Цитата: Easyskanker от мая 28, 2021, 20:27
В общем, действительно, всё дело в том, что в оригинальной "Жизни" проверка построчная
Если бы было так - поведение не было бы симметрично относительно осей координат. А оно, как известно, симметрично. Этого уже достаточно, чтобы отбросить такое предположение. Остальное уже объяснил Буд.
Во́зле до́ма хо́лм с куля́ми - вы́йду на́ холм, ку́ль поставлю.
В славном городе Miami тётки мерялись ногтями, тик иң озын завсегда у Фиделя борода!

Toman

Цитата: Bhudh от мая 28, 2021, 23:12
Кстати, в Mirek's Celebration есть пара правил с названиями Maze (12345/3) и Mazectric (1234/3), и они ну очень напоминают Ваше по действию.
Не, не очень-то напоминают. У этих на выходе очень быстро получается статичный лабиринт (с некоторым количеством осцилляторов внутри - очень малым в случае первого и побольше в случае второго). В видео же, приведённом выше в теме, получается вовсе не статичное поле, а постоянно меняющееся. Причём меняющееся как-то странно: в частности, в полосатых участках белые и чёрные полоски меняются местами, но не на каждом шаге, а как будто бы через один. Если бы это происходило на каждом шаге, это ещё можно было бы как-то устроить при помощи неких правил. Но если это происходит через один шаг (ну или через несколько) - это значит, что в действительности программа работает совсем не так, как предполагал и как нам описывает автор. (Ну и да, по словесному описанию правил ничего не воспроизводится - в моём случае в Golly, хотя Mirek's Celebration у меня тоже имеется со старых времён, запускался под Wine). Интересно, что же там всё-таки на самом деле происходит. И как это может сочетаться с тем, что "Жизнь" по классическим правилам нормально работала в той же программе (если верить автору).
Во́зле до́ма хо́лм с куля́ми - вы́йду на́ холм, ку́ль поставлю.
В славном городе Miami тётки мерялись ногтями, тик иң озын завсегда у Фиделя борода!

Easyskanker

Цитата: Bhudh от мая 28, 2021, 22:54
В "Жизни" изначально просчитывается сразу всё поле и меняется единомоментно. Других правил не знаю.
Как вообще можно построчно считать такие вещи? За такт менять окрестность одной клетки, за следующий такт — следующей и т. д.?
Цитата: Toman от мая 29, 2021, 12:22
Если бы было так - поведение не было бы симметрично относительно осей координат. А оно, как известно, симметрично. Этого уже достаточно, чтобы отбросить такое предположение. Остальное уже объяснил Буд.
Построчно проверяется окрестность Мура у каждой клетки по очереди, записываются в массив координаты клеток, подлежащих изменению, и уже на втором этапе клетки меняют состояние.

Цитата: Bhudh от мая 28, 2021, 23:12
они ну очень напоминают Ваше по действию
Вообще ничего общего.

Цитата: Toman от мая 29, 2021, 13:16
если это происходит через один шаг (ну или через несколько) - это значит, что в действительности программа работает совсем не так, как предполагал и как нам описывает автор
В моем лабиринте нет никаких шагов вообще. Именно что клетки меняют состояние единомоментно, причем единомоментно с проверкой. Из этой тотальной единомоментности и вытекает отличие в поведении клеток от поведения по классическому алгоритму, разработанному во времена, когда заставить клетки проверять свои окрестности самостоятельно было невозможно.

Если бы я использовал окрестность Мура второго порядка, а не первого, расстояние между "стенками" чаще было бы до двух клеток. Шаги тут не при чем.

Easyskanker

Сделал версию программы с оригинальным алгоритмом, чтобы работать с готовыми правилами. Для начала "Жизнь" и "День и ночь".


Easyskanker

Цитата: Bhudh от мая 28, 2021, 23:12
Кстати, в Mirek's Celebration есть пара правил с названиями Maze (12345/3) и Mazectric (1234/3)
Благодарю! Хорошие описания правил, сейчас опробую.

Toman

Цитата: Easyskanker от мая 29, 2021, 18:52
Построчно проверяется окрестность Мура у каждой клетки по очереди, записываются в массив координаты клеток, подлежащих изменению, и уже на втором этапе клетки меняют состояние.
Так в этом случае вообще совершенно не важно, в каком порядке обсчитывается будущее состояние каждой клетки. Главное, чтобы были обсчитаны все те, которые могут измениться. Так что как раз в этом случае говорить о построчности нет смысла. Формально говоря, просто на основе текущего кадра рассчитывается следующий.

Цитата: Easyskanker от мая 29, 2021, 18:52
В моем лабиринте нет никаких шагов вообще. Именно что клетки меняют состояние единомоментно, причем единомоментно с проверкой. Из этой тотальной единомоментности и вытекает отличие в поведении клеток от поведения по классическому алгоритму
Т.е. в вашем варианте вообще нет никаких вспомогательных массивов - ни координат изменяемых клеток, ни просто тупо целиком следующего кадра, которым после полного обсчёта будет заменён текущий, и изменения делаются прямо в единственном рабочем массиве, так, что каждое изменение точки повлияет на результат последующих расчётов для соседей? В таком случае как раз всё зависит от порядка обсчёта точек. Понятно, что в буквальном смысле единомоментно поменять все точки компьютер физически не может, и такого не может быть закодировано в программе, в силу последовательного принципа вычислений. Ну, это если я вообще правильно понял, что вы сказали - просто сказали вы нечто очень странное и непонятное, где слово "единомоментность", кажется, означает прямую противоположность тому, что обычно под этим словом понимают. По-прежнему очень сомневаюсь, что правильно понял сказанное вами, а вы - сказанное мной, в т.ч. значение слова "шаг"...

Цитата: Easyskanker от мая 29, 2021, 18:52
классическому алгоритму, разработанному во времена, когда заставить клетки проверять свои окрестности самостоятельно было невозможно.
Что значит "самостоятельно", и с чего бы вдруг это было невозможно тогда и стало возможно сейчас? Причина того, что классические правила (не конкретный алгоритм реализации, коих тьмы, а именно сами правила) таковы, каковы они есть - единственная и совершенно прямолинейная: просто потому, что так захотел автор. А захотел он так, вероятно, потому, что хотел эмулировать устройство, синхронно работающее по тактам.
Сделать программу, меняющую точки асинхронно, в каком-то там порядке, было бы куда проще - но в этом случае не получилось бы то, что хотел автор, а кроме того, результат бы зависел от некого волюнтаристски назначенного порядка обсчёта точек.
Во́зле до́ма хо́лм с куля́ми - вы́йду на́ холм, ку́ль поставлю.
В славном городе Miami тётки мерялись ногтями, тик иң озын завсегда у Фиделя борода!

Toman

Цитата: Easyskanker от мая 29, 2021, 19:28
Благодарю! Хорошие описания правил, сейчас опробую.
А многоцветных вариантов попробовать не хотите? Там, правда, для многоцветных, описание одной строчкой не обходится, но зато захардкодить их можно гораздо более коротким текстом, чем необходимый для этого текст правил для того же Golly, в котором я некоторые свои многцветные правила реализовал. Может быть, даже и эффективнее в смысле быстродействия будет захардкодить.
Во́зле до́ма хо́лм с куля́ми - вы́йду на́ холм, ку́ль поставлю.
В славном городе Miami тётки мерялись ногтями, тик иң озын завсегда у Фиделя борода!

Easyskanker

Цитата: Toman от мая 29, 2021, 19:39
А многоцветных вариантов попробовать не хотите?
Хочу. Я собираюсь сделать игру с процедурно-генерируемыми уровнями, вот изучаю принципы реализации.

Easyskanker



Куда более регулярный лабиринт. Интересно, что в итоге он стабилизируется и динамичными остаются только "двери", которые как бы открываются и закрываются.

Easyskanker

Цитата: Toman от мая 29, 2021, 19:31
Что значит "самостоятельно"
Это значит, что каждая клетка представляет собой экземпляр объекта с прописанными в нем самом событиями.

Toman

Цитата: Easyskanker от мая 29, 2021, 19:55
Хочу. Я собираюсь сделать игру с процедурно-генерируемыми уровнями, вот изучаю принципы реализации.
Кстати, одна из версий (впрочем, может быть, и не одна, а две) моих многоцветных (изначально 5-цветных, но аналогично можно сделать и 7-цветный вариант (увы, картинка по ссылке протухла) ) правил для "Жизни", кажется, вполне подошла бы для рисования случайных политических карт или аналогичных лоскутных рисунков из соотв. числа цветов. Отчасти для того и придумавалось.

Но для начала (для понимания того, что происходит дальше, в многоцветных вариантах) всё равно надо будет начать с обычной одноцветной (не считая "пустого" дефолтного цвета) вариации правил "Жизни". Тут всё просто: вместо классического 23/3 делаем, например, 2378/3 (или 237/3 - по общему поведению они очень мало различаются, я лично применял везде обычно 2378/3), т.е. кроме 2 или 3 соседей для выживания клетки годится также 7 или 8, ну или только 7. Что это даёт: в отличие от классической "Жизни", где активность постепенно "выгорает"/затухает на любых масштабах поля, в данной версии при достаточно большом размере поля (по крайней мере, торообразного, где края замкнуты друг на друга - с ограниченным полем, честно говоря, я даже не пробовал ещё) активность не затухает, и движуха продолжается практически бесконечно. При слишком маленьком поле, однако, через некоторое время затухнет, поскольку движуха там не заполняет всё пространство равномерно, а происходит отдельными очагами, как и в оригинале, просто этих очагов побольше, и они плотнее заселены. Если этих очагов на поле помещается слишком мало, то уже достаточно большой оказывается вероятность, что все они одновременно затухнут.

До сегодняшнего дня я, кажется, не читал вот этого описания цветных вариантов https://www.conwaylife.com/wiki/Colourised_Life . Когда-то ещё совсем давно независимо изобрёл то, что там названо как Immigration, но только применил его к вышеописанному правилу 2378/3. Но результат оказался не слишком интересным: один из цветов постепенно тупо побеждает, полностью вытесняя другой цвет. Не помню, изобретал/делал ли я аналог Quadlife - может, тоже пробовал что-то такое, но, видимо, тоже ничего интересного с моей точки зрения не получилось. Вариант с тремя цветами пробовал, но там случилась проблема симметрии: из-за того, что при рождении новой клетки от трёх разных цветов невозможно определиться, рождение в таких условиях не происходит вообще, и система опять же не работает так, как мне хотелось.

Желаемого результата удалось добиться только при 5 цветах и задействовании в правилах рождения клеток не только при 3, но и при 6 соседях (аналогично правилам HighLife), но только при условии, что это не просто 6 соседей абы каких цветов, а строго 3 соседа одного цвета и 3 соседа другого цвета. Итого, правила определения цвета клетки при рождении таковы:
- при рождении от 3 соседей:
-- если они одного или двух цветов, цвет выбирается из них по принципу большинства;
-- если они все трёх разных цветов, цвет выбирается из них по принципу симметрии, если цвета условно считать расположенными по вершинам правильного пятиугольника, т.е. если это окажутся три соседних цвета, выбирается средний из них, а если два соседа и один противолежащий этой паре - то выбирается этот самый противолежащий;

- при рождении от 6 соседей (строго по 3 штуки каждого из двух разных цветов) цвет определяется аналогично по принципу симметрии по кругу/пятиугольнику: если исходные цвета соседние, то порождается противолежащий, а если исходные не соседние (т.е. через один), то порождается средний между ними.

По выживанию же цветных клеток всё по-прежнему: 2378.

Это базовый вариант пятицветных правил, они уже обеспечивают при достаточном размере поля устойчивую движуху с устойчивым сохранением всех пяти цветов (если изначально обеспечить присутствие всех цветов), ну и при наличии достаточного количества материала хотя бы двух цветов через некоторое время самопроизвольно порождают остальные три недостающих цвета. Движуха при этом состоит преимущественно из одноцветных очагов/лоскутов достаточно небольшого размера.

Потом были придуманы две модификации этих правил, в одной из которых размер одноцветных лоскутов увеличен в несколько раз (соответственно, больше и минимальный размер поля, необходимый, чтобы один из цветов не вытеснил напрочь остальные), а в другой сделано так, что в рамках любого одного цвета всё работает строго как классические конвеевские правила 23/3, но именно за счёт контакта между зонами разных цветов на всём поле в целом (как обычно, при достаточном размере поля - и здесь этот требуемый размер ещё больше) движуха может продолжаться неограниченно долго, при этом плотность этой движухи меньше, чем в первых двух вариантах, и бо́льшая часть пространства заполнена совершенно обычного вида статичным конвеевским "пеплом" соответствующих цветов.

Чем эти два варианта отличаются, опишу чуть позже, чтоб не слишком загромождать и без того шибко длинное сообщение.

Ну и всё то же самое при желании можно реализовать и для 7 цветов - там уже просто симметрия не во всех случаях прокатывает, но для несимметричного случая трёх разных цветов, тем не менее, можно систематическим образом назначить результат.
Во́зле до́ма хо́лм с куля́ми - вы́йду на́ холм, ку́ль поставлю.
В славном городе Miami тётки мерялись ногтями, тик иң озын завсегда у Фиделя борода!


Bhudh

Цитата: Easyskanker от мая 29, 2021, 20:01
Цитата: Toman от мая 29, 2021, 19:31Что значит "самостоятельно"
Это значит, что каждая клетка представляет собой экземпляр объекта с прописанными в нем самом событиями.
Это детали реализации. Каким образом они могут влиять на действие правил?
А точнее, если детали реализации влияют на действие правил, значит, с кодом что-то не в порядке.
Пиши, что думаешь, но думай, что пишешь.
MONEŌ ERGŌ MANEŌ.
Waheeba dokin ʔebi naha.
«каждый пост в интернете имеет коэффициент бреда» © Невский чукчо

Toman

Цитата: Easyskanker от мая 29, 2021, 22:14
В Golly всё делаете?
Ну, это - да, там делал. По-хорошему хотелось бы ещё реализовать разные цвета для "пустых" клеток (по принципу того, какого цвета клетка была тут раньше), чтобы получать по сути готовую сплошную лоскутную карту, но как раз синтаксис правил в Golly делает реализацию этого слишком уж громоздкой при такого рода правилах. И так-то не сказать что компактно записывается. Поэтому до реализации цветных пустых у меня дело не дошло пока - очень уж лень стало (в предыдущих 2- и 3-цветных вариантах, в основе своей более простых, вроде делал это).

А когда-то совсем давно - где-то около 20 лет назад, значит - было дело, пробовал писать при помощи C++Builder - но тогда, вроде, ничего многоцветного не пробовал, м.б. только правило 2378/3 "пощупал" первоначально.
Во́зле до́ма хо́лм с куля́ми - вы́йду на́ холм, ку́ль поставлю.
В славном городе Miami тётки мерялись ногтями, тик иң озын завсегда у Фиделя борода!

Easyskanker

Цитата: Bhudh от мая 29, 2021, 22:23
Это детали реализации. Каким образом они могут влиять на действие правил?
А точнее, если детали реализации влияют на действие правил, значит, с кодом что-то не в порядке.
С кодом всё в порядке. Просто вы никогда не работали с этим алгоритмом самостоятельно, только через чужие программы, и всё никак не можете себе представить варианты его реализации. Только гадаете. Не надо гадать, надо смотреть на практике. Что называется, "ничего не говори, а чтоб понять мою печаль"(с) посмотрите отличия при пошаговой перемотке в посте 80 от оригинальной "Жизни".

Когда слева от глайдера "Г" рождается клетка А, одновременно под А рождается клетка Б, поскольку вместе с ножкой глайдера "Г" и клеткой А вокруг Б три живые клетки. Мертвая Б обсчитывает окрестность одновременно с рождением А, и одновременно же с ее рождением становится живой.

В оригинальной "Жизни" клетка Б не рождается, поскольку на этапе проверки, которая предварительна рождению/умерщвлению, вокруг Б две живые клетки, а на этапе рождения А самая нижняя клетка в "Г" - В - умерщвляется; новая проверка следует после этапа рождения/умерщвления, поэтому вокруг Б снова только две клетки - клетка В больше не считается живой.

В моем варианте клетка В точно так же умерщвлялась, но поскольку она умерщвлялась одновременно с рождением А, которое одновременно рождало Б, ее умерщвление не успевало препятствовать рождению Б.

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр