JavaScript - Клеточный автомат — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
Строка 2: Строка 2:
  
  
Данная страница содержит ссылки на различные версии постепенно развивающейся реализации [http://ru.wikipedia.org/wiki/Клеточный_автомат клеточного автомата] на языке JavaScript, а также описание каждой версии.
+
Здесь вы можете найти различные версии [http://ru.wikipedia.org/wiki/Клеточный_автомат клеточного автомата] на языке JavaScript, а также описание каждой версии.
  
== CelAut v1 ==
+
== Клеточный автомат v1 ==
 
[[CelAut v1|Программа CelAut v1]]
 
[[CelAut v1|Программа CelAut v1]]
  
Базовая реализация двухмерного клеточного автомата.
+
Самая первая версия программы.
  
* Используется [http://ru.wikipedia.org/wiki/Окрестность_Мура окрестность Мура] первого порядка - состояние каждой клетки зависит от восьми клеток вокруг.
+
* Состояние каждой клетки на следующем шаге зависит от восьми клеток вокруг - это называется "Окрестность Мура". Почитать поподробнее можно [http://ru.wikipedia.org/wiki/Окрестность_Мура здесь].
* Установлены периодические граничные условия - клетка, находящаяся на краю поля взаимодействует с клетками на противоположном краю. По сути, получается поверхность тора.
+
* На краях стоят периодические условия - клетка, находящаяся на краю поля взаимодействует с клетками на противоположном краю. По сути, получается поверхность тора.
* Правила работы автомата задаются геномами '''L''' и '''B'''. Размер генома равен количеству различных вариантов состояний клеток в окрестности рассматриваемой клетки. В окрестности Мура возможно 9 вариантов - от 0 до 8 живых клеток вокруг нашей клетки.
+
* Есть кнопка паузы.
 +
* Поле генерируется случайным образом.
 +
* Развитие жизни в автомате определяется "геномами" '''L''' и '''B'''. Сейчас геном у всех клеток один и тот же, в дальнейшем у каждой клетки будет свой геном, она сможет мутировать и "бороться" с другими клетками за выживаемость.
 +
<toggledisplay status=hide showtext="Как это работает↓" hidetext="Убрать↑" linkstyle="font-size:default">
 +
Размер генома равен количеству различных вариантов состояний клеток в окрестности рассматриваемой клетки. В окрестности Мура возможно 9 вариантов - от 0 до 8 живых клеток вокруг нашей клетки.
 
** '''L''' описывает поведение живой клетки на следующем шаге. Например, геном L:110000000 означает, что клетка выживет, если рядом с ней будет находиться 0 или 1 живых клеток.
 
** '''L''' описывает поведение живой клетки на следующем шаге. Например, геном L:110000000 означает, что клетка выживет, если рядом с ней будет находиться 0 или 1 живых клеток.
** '''B''' описывает, зародится ли жизнь в неживой клетке на следующем шаге. Например, геном B:001000000 означает, что в неживой клетке зародится жизнь, если рядом будет находиться 2 живые клетки.
+
** '''B''' описывает, зародится ли жизнь в неживой клетке на следующем шаге. Например, геном B:001000000 означает, что в неживой клетке зародится жизнь, если рядом будет находиться 2 живые клетки.  
* Добавлена кнопка паузы для остановки/запуска клеточного автомата.
+
</toggledisplay>
* Поле клеточного автомата генерируется случайным образом при запуске автомата.
+
 
  
 
''Примечание:'' При использовании геномов '''L:001100000''' и '''B:000100000''' получается классическая игра [http://ru.wikipedia.org/wiki/Жизнь_(игра) "Жизнь"] Джона Конвея.
 
''Примечание:'' При использовании геномов '''L:001100000''' и '''B:000100000''' получается классическая игра [http://ru.wikipedia.org/wiki/Жизнь_(игра) "Жизнь"] Джона Конвея.
  
== CelAut v2 ==
+
== Клеточный автомат v2 ==
  
 
[[CelAut v2|Программа CelAut v2]]
 
[[CelAut v2|Программа CelAut v2]]
  
* Добавлена возможность добавлять живые клетки левой клавишей мыши и убирать правой.
+
* Теперь можно добавлять и убирать клетки мышкой (левая клавиша - добавляем, правая - убираем).
* Добавлена кнопка "Next step".
+
* Добавлена кнопка "Next step" - просчитывает один шаг.
* В коде добавлены функции управления работой автомата.
+
* В коде добавлены функции для удобства управления работой автомата.
  
 
== См. также ==
 
== См. также ==

Версия 15:01, 18 апреля 2014

Кафедра ТМ > Программирование > Интернет > JavaScript > Клеточный автомат


Здесь вы можете найти различные версии клеточного автомата на языке JavaScript, а также описание каждой версии.

Клеточный автомат v1

Программа CelAut v1

Самая первая версия программы.

  • Состояние каждой клетки на следующем шаге зависит от восьми клеток вокруг - это называется "Окрестность Мура". Почитать поподробнее можно здесь.
  • На краях стоят периодические условия - клетка, находящаяся на краю поля взаимодействует с клетками на противоположном краю. По сути, получается поверхность тора.
  • Есть кнопка паузы.
  • Поле генерируется случайным образом.
  • Развитие жизни в автомате определяется "геномами" L и B. Сейчас геном у всех клеток один и тот же, в дальнейшем у каждой клетки будет свой геном, она сможет мутировать и "бороться" с другими клетками за выживаемость.

<toggledisplay status=hide showtext="Как это работает↓" hidetext="Убрать↑" linkstyle="font-size:default"> Размер генома равен количеству различных вариантов состояний клеток в окрестности рассматриваемой клетки. В окрестности Мура возможно 9 вариантов - от 0 до 8 живых клеток вокруг нашей клетки.

    • L описывает поведение живой клетки на следующем шаге. Например, геном L:110000000 означает, что клетка выживет, если рядом с ней будет находиться 0 или 1 живых клеток.
    • B описывает, зародится ли жизнь в неживой клетке на следующем шаге. Например, геном B:001000000 означает, что в неживой клетке зародится жизнь, если рядом будет находиться 2 живые клетки.

</toggledisplay>


Примечание: При использовании геномов L:001100000 и B:000100000 получается классическая игра "Жизнь" Джона Конвея.

Клеточный автомат v2

Программа CelAut v2

  • Теперь можно добавлять и убирать клетки мышкой (левая клавиша - добавляем, правая - убираем).
  • Добавлена кнопка "Next step" - просчитывает один шаг.
  • В коде добавлены функции для удобства управления работой автомата.

См. также