MATLAB-元胞自动机-生命游戏-GUI
2018-01-27 11:13
316 查看
%Conway's life with GUI clf clear all %=========================== %build the GUI %define the plot button plotbutton=uicontrol('style','pushbutton',... 'string','Run', ... 'fontsize',12, ... 'position',[100,400,50,20], ... 'callback', 'run=1;'); %define the stop button erasebutton=uicontrol('style','pushbutton',... 'string','Stop', ... 'fontsize',12, ... 'position',[200,400,50,20], ... 'callback','freeze=1;'); %define the Quit button quitbutton=uicontrol('style','pushbutton',... 'string','Quit', ... 'fontsize',12, ... 'position',[300,400,50,20], ... 'callback','stop=1;close;'); number = uicontrol('style','text', ... 'string','1', ... 'fontsize',12, ... 'position',[20,400,50,20]); %============================== %CA setup n=128; %initialize the arrays z = zeros(n,n); cells = z; sum = z; %set a few cells to one cells(n/2,.25*n:.75*n) = 1; cells(.25*n:.75*n,n/2) = 1; %cells(.5*n-1,.5*n-1)=1; %cells(.5*n-2,.5*n-2)=1; %cells(.5*n-3,.5*n-3)=1; cells = (rand(n,n))<.5 ; %how long for each case to stability or simple oscillators %build an image and display it imh = image(cat(3,cells,z,z)); set(imh, 'erasemode', 'none') axis equal axis tight %index definition for cell update x = 2:n-1; y = 2:n-1; %Main event loop stop= 0; %wait for a quit button push run = 0; %wait for a draw freeze = 0; %wait for a freeze while (stop==0) if (run==1) %nearest neighbor sum sum(x,y) = cells(x,y-1) + cells(x,y+1) + ... cells(x-1, y) + cells(x+1,y) + ... cells(x-1,y-1) + cells(x-1,y+1) + ... cells(3:n,y-1) + cells(x+1,y+1); % The CA rule cells = (sum==3) | (sum==2 & cells); %draw the new image set(imh, 'cdata', cat(3,cells,z,z) ) %update the step number diaplay stepnumber = 1 + str2num(get(number,'string')); set(number,'string',num2str(stepnumber)) end if (freeze==1) run = 0; freeze = 0; end drawnow %need this in the loop for controls to work end
相关文章推荐
- 元胞自动机 生命游戏 Matlab实现 GUI
- 生命游戏——元胞自动机程序实现
- C#绘图实现元胞自动机之生命的游戏(分形之美)
- 用javascript实现元胞自动机的生命游戏
- 元胞自动机及生命游戏
- matlab 生命游戏
- 生命游戏——一个简单的元胞自动机
- matlab下整了个元宝自动机,俗称“生命游戏”
- 详解Python 实现元胞自动机中的生命游戏(Game of life)
- 元胞自动机+生命游戏
- 【转载】【元胞自动机】生命游戏(时间简史)
- 元胞自动机与生命游戏
- 【matlab】题目:(不同GUI之间控件的调用(原创))
- 【matlab】GUI 中使用Popupmenu遇到的问题及其解决办法
- 假的生命游戏
- 【Visual C++】游戏开发五十七 浅墨DirectX教程二十四 打造游戏GUI界面(二)
- Matlab程序入门GUI项目之二:简单科学计算器
- MATLAB GUI ,2,使用MATLAB的函数来实现MATLAB GUI,part 4,小游戏
- 游戏引擎/GUI的设计与实现-序
- MATLAB GUI编程入门