JavaScript - Клеточный автомат — различия между версиями
Материал из Department of Theoretical and Applied Mechanics
Денис (обсуждение | вклад) |
Денис (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
− | + | Здесь вы можете найти различные версии [http://ru.wikipedia.org/wiki/Клеточный_автомат клеточного автомата] на языке JavaScript, а также описание каждой версии. | |
− | == | + | == Клеточный автомат v1 == |
[[CelAut v1|Программа CelAut v1]] | [[CelAut v1|Программа CelAut v1]] | ||
− | + | Самая первая версия программы. | |
− | * | + | * Состояние каждой клетки на следующем шаге зависит от восьми клеток вокруг - это называется "Окрестность Мура". Почитать поподробнее можно [http://ru.wikipedia.org/wiki/Окрестность_Мура здесь]. |
− | * | + | * На краях стоят периодические условия - клетка, находящаяся на краю поля взаимодействует с клетками на противоположном краю. По сути, получается поверхность тора. |
− | * | + | * Есть кнопка паузы. |
+ | * Поле генерируется случайным образом. | ||
+ | * Развитие жизни в автомате определяется "геномами" '''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/Жизнь_(игра) "Жизнь"] Джона Конвея. | ||
− | == | + | == Клеточный автомат v2 == |
[[CelAut v2|Программа CelAut v2]] | [[CelAut v2|Программа CelAut v2]] | ||
− | * | + | * Теперь можно добавлять и убирать клетки мышкой (левая клавиша - добавляем, правая - убираем). |
− | * Добавлена кнопка "Next step". | + | * Добавлена кнопка "Next step" - просчитывает один шаг. |
− | * В коде добавлены функции управления работой автомата. | + | * В коде добавлены функции для удобства управления работой автомата. |
== См. также == | == См. также == |
Версия 15:01, 18 апреля 2014
Кафедра ТМ > Программирование > Интернет > JavaScript > Клеточный автомат
Здесь вы можете найти различные версии клеточного автомата на языке JavaScript, а также описание каждой версии.
Клеточный автомат 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
- Теперь можно добавлять и убирать клетки мышкой (левая клавиша - добавляем, правая - убираем).
- Добавлена кнопка "Next step" - просчитывает один шаг.
- В коде добавлены функции для удобства управления работой автомата.