请选择 进入手机版 | 继续访问电脑版

QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 671|回复: 0

元胞自动机——生命游戏

[复制链接]
字体大小: 正常 放大

413

主题

36

听众

1854

积分

升级  85.4%

  • TA的每日心情
    开心
    2019-9-18 21:55
  • 签到天数: 258 天

    [LV.8]以坛为家I

    社区QQ达人

    群组2015国赛冲刺

    群组2016美赛公益课程

    群组国赛讨论

    群组第三届数模基础实训

    群组Matlab讨论组

    发表于 2015-8-17 19:34 |显示全部楼层
    |招呼Ta 关注Ta
    1. <p>%元胞自动机——生命游戏
    2. %时间:2015-8-17-一
    3. %作者:张卫东
    4. clc
    5. clear
    6. close all
    7. %=================================
    8. %先建立GUI
    9. %定义:开始按钮
    10. plotbutton=uicontrol('style','Pushbutton',...
    11.                                 'string','Run',...
    12.                                  'fontsize',12,...
    13.                                  'position',[100,395,70,25],...
    14.                                  'callback','run=1;');
    15. %定义:停止按钮
    16. erasebutton=uicontrol('style','Pushbutton',...
    17.                                 'string','Stop',...
    18.                                  'fontsize',12,...
    19.                                  'position',[200,395,70,25],...
    20.                                  'callback','freeze=1;');
    21. %定义:退出按钮
    22. quitbutton=uicontrol('style','Pushbutton',...
    23.                                 'string','Quit',...
    24.                                  'fontsize',12,...
    25.                                  'position',[300,395,70,25],...
    26.                                  'callback','stop=1;close;');
    27. %定义:进化步数
    28. number=uicontrol('style','text',...
    29.                             'string','1',...
    30.                             'fontsize',12,...
    31.                             'position',[20,200,70,20]) ;
    32. %=================================</p><p>%CA开始
    33. n=128;
    34. %初始化向量
    35. z=zeros(n,n);
    36. cells=z;
    37. sum=z;
    38. %设置少量元素为一;
    39. %cells(n/2,0.25*n:0.75*n)=1;
    40. %cells(0.25*n:0.75*n,n/2)=1;
    41. %cells(0.5*n-1,0.5*n-1)=1;
    42. %cells(0.5*n-2,0.5*n-2)=1;
    43. %cells(0.5*n-3,0.5*n-3)=1;
    44. cells=(rand(n,n))<0.5;</p><p>%建立一个图片,并画出它!
    45. imh=image( cat(3,cells,z,z) );
    46. set( imh,'erasemode','none' )
    47. axis equal
    48. axis tight

    49. %index defination for cell updata
    50. x=2:n-1;
    51. y=2:n-1;</p><p>%Main event loop
    52. stop=0;   %wait for a quit button push
    53. run=0;    %wait for a draw
    54. freeze=0;   %wait for a freeze</p><p>while stop==0
    55.     if run==1
    56.         sum(x,y)=cells(x,y-1)+cells(x,y+1)+...
    57.                       cells(x-1,y)+cells(x+1,y)+...
    58.                       cells(x-1,y-1)+cells(x-1,y+1)+...
    59.                       cells(x+1,y-1)+cells(x+1,y+1);
    60.         %The CA rule
    61.         cells=(sum==3)|(sum==2&cells);
    62.         %draw the new imag
    63.         set( imh,'cdata',cat(3,cells,z,z) )
    64.         %updata the step number diaplay
    65.         stepnumber=1+str2double( get(number,'string') );
    66.         set( number,'string',num2str( stepnumber ) )
    67.     end
    68.    
    69.     if freeze==1
    70.         run=0;
    71.         freeze=0;
    72.     end
    73.     drawnow  %need this in the loop for cintrol to work
    74.     %pause(0.5)
    75. end
    76. </p><p><p>                             
    77.                              
    78.                              
    79.                              
    80.                              
    81.                              
    82.                             </p>
    复制代码

    开始.PNG
    中间结果.PNG
    最终结果.PNG
    zan
    数学中国版主团队!
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2024-3-29 02:43 , Processed in 0.309230 second(s), 58 queries .

    回顶部