V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
jiyinyiyong
V2EX  ›  分享创造

基于生命游戏(game of life)衍生的一个图形玩具

  •  
  •   jiyinyiyong ·
    jiyinyiyong · 2021-03-28 12:09:51 +08:00 · 1670 次点击
    这是一个创建于 1097 天前的主题,其中的信息可能已经有所发展或是发生改变。

    生命游戏应该都知道, 我这边是改了一下设定的规则, 然后在有限的格子上生成图案.

    先上图:

    具体的用法可以看录的介绍

    https://www.bilibili.com/video/BV1xN411X7zh/

    对应地址

    大体的介绍的话, 就是通过九宫格的 2^9 种状态, 来迭代中心的格子下一时刻的状态(0 或 1), 因为九宫格的可能性有 2^9 种, 这样再排列组合的话, 可能性就非常多了. 为了生成图案方便, 规则应该是对称的, 那么总体数量可以去掉一些重复... 按照生命游戏的设定, 直接按照个数来决定了.. 然而不对称也能运行, 只是特别容易乱. 我这边只是探索了一下简单的一些情况, 生成了上边的图.

    3x3 的格子, 对应的就是 3x1 的二维的版本了. 而一维的版本, 听说已经研究比较透了, 也比较有意思 https://en.wikipedia.org/wiki/Elementary_cellular_automaton 现在这个版本, 也有受到上边这个自动机的启发. 不过我也不是搞数学的, 加上 3x3 排列出来的可能性非常多, 也就只能生成图案当做玩具了.

    另外渲染器基于 PIXI 的 virtual DOM 方案实现的, 性能比较差. 理论上讲可以直接 WebGL 底层玩法的改成高性能的版本, 不过写起来就没这么省事了. 具体到我这边生成的规则是这样的... 比如:

    _______1__11111_1_11_1111111111__111_11_111_1___1111111_111_1__1__11_11__11_1____111111_111_1___111_1___1_______111_1___1________111111_111_1___1111111_111_1___111_1___1_______111_1___1_1______11_1___1_______111_1___1__1____1_______________1_________________11_11_111_1____111111_111_1____11_1___1_______111_1___1________11_1___1_______111_1___1_______1_______________1________________11_1___1_______111_1___1_______1_______________1_____1_________1_______________1_______________________________________1_______
    

    它的长度是 2^9 , 然后每一个位置的 _ 或者 1 对应 falsetrue. 然后对应九宫格的选中点, 从左往右, 从上到下的话, 以此取 2^(8-n) 之和, 从 0 开始计数.

    这个和就是 2^9 的字符串上的坐标值, 然后就可以查询到 Bool 值. 按说是可以沿用我的规则编辑器, 然后另外用 WebGL 写个高性能版本的.

    看下有没人有兴趣再弄点有意思的图案出来..

    rbw
        1
    rbw  
       2021-03-28 17:13:07 +08:00
    诶 这个不错 话说老哥你知道有木有人做这种动态壁纸?
    jiyinyiyong
        2
    jiyinyiyong  
    OP
       2021-03-28 19:36:25 +08:00
    @rbw 木有诶.. 静态壁纸倒是可以改改代码画一个, 动态的不清楚怎么实现了.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2838 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 13:19 · PVG 21:19 · LAX 06:19 · JFK 09:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.