我是靠谱客的博主 整齐吐司,最近开发中收集的这篇文章主要介绍一维元胞自动机生命游戏,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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


开始

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

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

在这里插入图片描述
状态可以转成十进制的数字,每个状态下一个迭代要么是生要么是死
现在制定一些规则,规定每种状态下一个迭代是死亡还是存活,那么就有256种规则了, 2的八次方对吧, 制成表格就是下图所示
在这里插入图片描述
倒过来,每种规则也是一个二进制数,转成十进制数就是左边的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/
截图喵一眼
在这里插入图片描述

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

最后

以上就是整齐吐司为你收集整理的一维元胞自动机生命游戏的全部内容,希望文章能够帮你解决一维元胞自动机生命游戏所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部