MATLAB实现元胞自动机:生命游戏开发

一. 生命游戏原理,每个格子有两个状态生与死。

  • 生的格子四周若有两个或三个生的状态格子则继续生,否则死状态。
  • 死的格子四周如果有三个生的格子,则就转变为生,则继续死状态。
  • 我们令生状态为数字1,死状态为数字0

二. Matlab代码,代码如下

%%生命游戏
n = 20;     %场景大小
p = 0.4;    %初始话为1的概率
Se = rand(n)<p;
Sd = zeros(n+2);
Ph = imagesc(Se);
while(true)
    Sd(2:n+1,2:n+1)=Se;
    sumValue = Sd(1:n,1:n)+Sd(1:n,2:n+1)+Sd(1:n,3:n+2)+Sd(2:n+1,1:n)+Sd(2:n+1,3:n+2)+Sd(3:n+2,1:n)+Sd(3:n+2,2:n+1)+Sd(3:n+2,3:n+2);
    for i=1:n
        for j=1:n
            if(sumValue(i,j)==3||(sumValue(i,j)==2&&Se(i,j)==1))
                Se(i,j) = 1;
            else if(Se(i,j)==0&&sumValue(i,j)==3)
                Se(i,j) = 1;
            else  Se(i,j) = 0;
                end
            end
        end
    end
    set(Ph,'cdata',Se);
    pause(0.05);
end

三. 运行结果

运行中的截图

可以自己去尝试修改一些参数,看看能不能出一些更漂亮的图。

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空