一维元胞自动机生命游戏

提示:某天在网络上看到生命游戏,好奇点进去,然后发现,一个小小的规则能衍生出很多复杂的东西,一个小小的方块竟能表现的跟生命一样, 有一种道生万物的奇妙体验, 我们人类是不上也是某种规则下的产物呢?

盆友们,在 bilibili 搜索一下生命游戏吧!感受一下!!!


开始

一维元胞自动机是一条直线, 可用计算机模拟
每个细胞只有0和1两种状态, 也就是’死’和’生’, 这个细胞根据周围(左右)两个细胞的状态决定下一个迭代周期的状态
一维元胞自动机生命游戏_第1张图片
比如某个规则: 忽略自身状态

  • 某个细胞周围都是1, 那么下个周期他就死亡了, (太拥挤了)
  • 某个细胞周围都是0, 那么下个周期他就死亡了, (太孤独了)
  • 某个细胞左边是1右边是0, 那么下个周期他变为1 (生长)
  • 某个细胞右边是1左边是0, 那么下个周期他不变
    这些规则可以加上自身的状态(有可能这个细胞求生欲很强,很努力),
    那么一个细胞的状态(包括周围环境)可以有八种, 每种状态正好是二进制数

一维元胞自动机生命游戏_第2张图片
状态可以转成十进制的数字,每个状态下一个迭代要么是生要么是死
现在制定一些规则,规定每种状态下一个迭代是死亡还是存活,那么就有256种规则了, 2的八次方对吧, 制成表格就是下图所示
一维元胞自动机生命游戏_第3张图片
倒过来,每种规则也是一个二进制数,转成十进制数就是左边的ID,就是规则编号

  • 比如规则0是最极端的规则(比如火山喷发, 恐龙不就是这么灭绝的么),所有细胞无论周围环境怎么样, 下一周期都是死亡状态
  • 比如规则255是最好的规则, 所有细胞无论周围环境怎么样, 下一周期都是活着, 无限繁殖

再来看开始时说的规则
忽略自身状态

  • 某个细胞周围都是1, 那么下个周期他就死亡了, (太拥挤了)
    1 1 1 -> 0 __________7 -> 0
    1 0 1 -> 0 __________5 -> 0
  • 某个细胞周围都是0, 那么下个周期他就死亡了, (太孤独了)
    0 1 0 -> 0 __________2 -> 0
    0 0 0 -> 0 __________0 -> 0
  • 某个细胞左边是1右边是0, 那么下个周期他变为1 (生长)
    1 1 0 -> 1 __________6 -> 1
    1 0 0 -> 1 __________4 -> 1
  • 某个细胞右边是1左边是0, 那么下个周期他不变
    0 1 1 -> 1 __________3 -> 1
    0 0 1 -> 0 __________1 -> 0
    那么可以推断这个规则是88号规则, 88对应的二进制数为 01011000, 这个规则的细胞倾向于往右发展

这是某大学写的 二维元胞自动机
这是我写的一维元胞自动机实现
https://beijingtiger666.github.io/livegame/
截图喵一眼
一维元胞自动机生命游戏_第4张图片

思考:
二维元胞自动机共有多少种规则?

你可能感兴趣的:(编程乐趣,游戏,javascript,1024程序员节)