Редактирование: Игра жизни Конвея

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 112: Строка 112:
[[Файл:Long gun.gif|400px|thumb|right|Планерная пушка в тороидальном массиве. Поток планеров в конце концов оборачивается и уничтожает пушку.]]
[[Файл:Long gun.gif|400px|thumb|right|Планерная пушка в тороидальном массиве. Поток планеров в конце концов оборачивается и уничтожает пушку.]]


[[Файл:Игра "Жизнь".gif|400px|thumb|right|Красный планер на квадратной решетке с периодическими граничными условиями]]
[[Файл:Игра "Жизнь".gif|400px|thumb|left|Красный планер на квадратной решетке с периодическими граничными условиями]]


В принципе, поле Game of Life бесконечно, но компьютеры имеют конечную память. Это приводит к проблемам, когда активная область посягает на границу массива. Программисты использовали несколько стратегий для решения этих проблем. Самая простая стратегия - предположить, что каждая ячейка вне массива мертва. Это легко запрограммировать, но приводит к неточным результатам, когда активная область пересекает границу. Более сложный трюк состоит в том, чтобы считать левый и правый края поля сшитыми вместе, а также верхний и нижний края, что дает тороидальный массив. В результате активные области, которые перемещаются по краю поля, снова появляются на противоположном краю. Неточность все еще может привести, если шаблон становится слишком большим, но нет никаких патологических краевых эффектов. Также можно использовать методы динамического распределения памяти, создавая все большие массивы для хранения растущих шаблонов. Игра жизни на конечном поле иногда явно изучается; некоторые реализации, такие как Golly, поддерживают выбор стандартного бесконечного поля, поля, бесконечного только в одном измерении, или конечного поля, с выбором топологий, таких как цилиндр, тор или полоса Мебиуса.
В принципе, поле Game of Life бесконечно, но компьютеры имеют конечную память. Это приводит к проблемам, когда активная область посягает на границу массива. Программисты использовали несколько стратегий для решения этих проблем. Самая простая стратегия - предположить, что каждая ячейка вне массива мертва. Это легко запрограммировать, но приводит к неточным результатам, когда активная область пересекает границу. Более сложный трюк состоит в том, чтобы считать левый и правый края поля сшитыми вместе, а также верхний и нижний края, что дает тороидальный массив. В результате активные области, которые перемещаются по краю поля, снова появляются на противоположном краю. Неточность все еще может привести, если шаблон становится слишком большим, но нет никаких патологических краевых эффектов. Также можно использовать методы динамического распределения памяти, создавая все большие массивы для хранения растущих шаблонов. Игра жизни на конечном поле иногда явно изучается; некоторые реализации, такие как Golly, поддерживают выбор стандартного бесконечного поля, поля, бесконечного только в одном измерении, или конечного поля, с выбором топологий, таких как цилиндр, тор или полоса Мебиуса.
Строка 119: Строка 119:


Для изучения больших паттернов на больших глубинах времени могут быть полезны сложные алгоритмы, такие как Hashlife. Существует также метод реализации Игры жизни и других клеточных автоматов с использованием произвольных асинхронных обновлений, в то же время точно эмулируя поведение синхронной игры. Примеры исходного кода, реализующие базовый сценарий Game of Life на различных языках программирования, включая C, C++, Java и Python, можно найти в Rosetta Code.
Для изучения больших паттернов на больших глубинах времени могут быть полезны сложные алгоритмы, такие как Hashlife. Существует также метод реализации Игры жизни и других клеточных автоматов с использованием произвольных асинхронных обновлений, в то же время точно эмулируя поведение синхронной игры. Примеры исходного кода, реализующие базовый сценарий Game of Life на различных языках программирования, включая C, C++, Java и Python, можно найти в Rosetta Code.
==Вариации==
==Вариации==
Основная статья: [[Жизнеподобный клеточный автомат]]
Основная статья: [[Жизнеподобный клеточный автомат]]
Пожалуйста, учтите, что любой ваш вклад в проект «wikixw» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Wikixw:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

  <charinsert>[+]</charinsert> · <charinsert>+</charinsert> · <charinsert>+</charinsert> · <charinsert>✔ Оставить</charinsert> · <charinsert>– —</charinsert> · <charinsert>“+” ‘+’ «+» ‹+› „+“ ‚+‘</charinsert> · <charinsert>… ~ | °  </charinsert> · <charinsert>≈ ≠ ≤ ≥ ± − × ÷ ← → ² ³ ½ · §</charinsert>
     <charinsert></charinsert> · <charinsert>File:+</charinsert> · <charinsert>Special:MyLanguage/+</charinsert> · <charinsert>Special:MyLanguage/</charinsert> · <charinsert>+</charinsert> · <charinsert><nowiki>+</nowiki></charinsert> <charinsert><nowiki>+</nowiki></code></charinsert> · <charinsert><syntaxhighlight lang="php">+</syntaxhighlight></charinsert> · <charinsert></charinsert> · <charinsert>+</charinsert> · <charinsert>#REDIRECT+</charinsert> · <charinsert><translate>+</translate></charinsert> · <charinsert><languages/></charinsert> · <charinsert>{{#translation:}}</charinsert> · <charinsert><tvar name=1>+</tvar></charinsert> · <charinsert>{{DEFAULTSORT:+}}</charinsert> · <charinsert>+</charinsert>