制作了一个生命游戏的小游戏
上下左右移动红点
空格绘制生命
按键B开始运动
按键C暂停
按键A清空
按键backspace删除生命

游戏截图


动图

代码部分

function lifecontrol
% life game which can input point as you will.
% move the red cross with the key
% 'uparrow','downarrow','leftarrow','rightarrow'
% use the key 'space'to input
% 'bacspace'to delete
% 'b' to begin 'c'to stop and 'a' to restartn=50;%n=input('the board size is:');axis equalaxis(0.5+[0,n,0,n])set(gca,'xtick',[],'ytick',[],'xcolor','w','ycolor','w')set(gca,'color','w')hold on%axis set.........................................................................%A=randi(9,[n,n]);%A(A<2.1)=0;%A(A>2)=1;A=zeros(n,n);%A=[input sqare with only ones and zeros][a,b]=find(A(:,:)==1);B=[b,length(sum(A,2))-a];postion=[floor(n/2),floor(n/2)];control=1;plotl=scatter(gca,B(:,1),B(:,2),1200/n,'ks','filled');plotpostion=scatter(gca,postion(1,1),postion(1,2),150,'rx');set(gcf, 'KeyPressFcn', @key)                                                     fps = 20;                                    game = timer('ExecutionMode', 'FixedRate', 'Period',1/fps, 'TimerFcn', @lifeGame);start(game)
%beginning set.............................................................................
set(gcf,'tag','co','CloseRequestFcn',@clo);function clo(~,~)stop(game)delete(findobj('tag','co'))clfcloseend
    function lifeGame(~,~)chang=length(sum(A,2));postion(postion>chang)=postion(postion>chang)-chang;postion(postion<1)=postion(postion<1)+chang;if control==2B1=[A;zeros(1,chang)];B1(1,:)=[];B2=[zeros(1,chang);A];B2(end,:)=[];B3=[zeros(chang,1),A];B3(:,end)=[];B4=[A,zeros(chang,1)];B4(:,1)=[];C1=[zeros(chang,1),B1];C1(:,end)=[];C2=[B1,zeros(chang,1)];C2(:,1)=[];C3=[zeros(chang,1),B2];C3(:,end)=[];C4=[B2,zeros(chang,1)];C4(:,1)=[];NewA=B1+B2+B3+B4+C1+C2+C3+C4;progressA=zeros(chang,chang);progressA(NewA==3)=1;t3=find(NewA==2);t2=find(A==1);[lalala,~,~]=intersect(t3,t2);progressA(lalala)=1;A=progressA;[a,b]=find(A(:,:)==1);B=[b,length(sum(A,2))-a];endif control==1[a,b]=find(A(:,:)==1);B=[b,length(sum(A,2))-a]; endset(plotl,'XData',B(:,1),'YData',B(:,2))set(plotpostion,'XData',postion(1,1),'YData',postion(1,2))endfunction key(~,event)switch event.Keycase 'uparrow'postion=postion+[0,1];case 'downarrow'postion=postion+[0,-1];case 'leftarrow'postion=postion+[-1,0];case 'rightarrow'postion=postion+[1,0];case 'space'A(length(sum(A,2))-postion(1,2),postion(1,1))=1;case 'backspace'A(length(sum(A,2))-postion(1,2),postion(1,1))=0;case 'b'control=2;case 'c'control=1;case 'a'A=zeros(100,100);control=1;endend
end

将两段代码复制粘贴至同一个m文件即可

matlab 生命游戏 可自己输入图像相关推荐

  1. matlab 生命游戏(可调节代数,存活条件,繁殖条件)

    以前写的,主要是受到golly这个软件的启发(感觉是个很好玩的软件) 这个生命游戏可调节代数,存活条件,繁殖条件 like this 运行效果 代码: function lifeinput(arg1) ...

  2. 【元胞自动机】元胞自动机生命游戏【含Matlab源码 655期】

    ⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...

  3. matlab幂次变换代码,matlab实现 图像的灰度变换 增强输入图像的对比度 幂律变换 代码...

    matlab实现 图像的灰度变换 增强输入图像的对比度 幂律变换 代码 发布时间:2018-10-25 21:20, 浏览次数:891 , 标签: matlab 题目:选择合适的基本灰度变换模型及其参 ...

  4. 【老生谈算法】matlab实现生命游戏源码——生命游戏

    MATLAB实现生命游戏源码 1.文档下载: 本算法已经整理成文档如下,有需要的朋友可以点击进行下载 序号 文档(点击下载) 本项目文档 [老生谈算法]MATLAB实现生命游戏源码.docx 2.算法 ...

  5. 元胞自动机 | Matlab实现基于CA元胞自动机的生命游戏模拟

    文章目录 效果一览 文章概述 程序设计 参考资料 效果一览 文章概述 元胞自动机 | 基于CA元胞自动机的生命游戏模拟."生命游戏"是一个"元胞自动机",它是一 ...

  6. 康威生命游戏简易版python_turtle实现

    以下资料引用至百度百科 ​ 康威生命游戏(Game of Life),剑桥大学约翰·何顿·康威设计的计算机程序. 概述: 生命游戏没有游戏玩家各方之间的竞争,也谈不上输赢,可以把它归类为仿真游戏.事实 ...

  7. 元胞自动机CA+生命游戏代码

    1.元胞自动机 元胞自动机(Cellular Automaton,复数为Cellular Automata,简称CA,也有人译为细胞自动机.点格自动机.分子自动机或单元自动机).是一时间和空间都离散的 ...

  8. 伍六七带你学算法 进阶篇-生命游戏

    有趣的算法题–生命游戏 难度-中等 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机. 想要体验生命游戏的小伙伴可以到这里-->生命游戏 进入 ...

  9. 康威生命游戏是如何搭建计算机的?

    2020年4月,数学家约翰·康威(John H. Conway)因新冠肺炎去世.大家回顾康威教授平生贡献时,不可避免要提到伟大.深刻的"康威生命游戏"(Conway's Game ...

最新文章

  1. IOS开发笔记7-C语言基础复习
  2. crontab 案例
  3. C语言定义一个头节点,一个关于C语言链表头结点的问题
  4. 经典数字信号处理图书的个人评述【转】
  5. (04)FPGA芯片选型原则
  6. BizTalk动手实验(十七)ODBC适配器使用
  7. 2015年9大优秀项目管理工具集锦
  8. C#实现用Enter键和Tab键同样功能
  9. 数据结构-约瑟夫问题课后作业
  10. python樱桃小丸子_appium+python自动化启动app
  11. flutter 带未读消息的底部导航
  12. 服务器变卡的原因有哪些
  13. 华为任正非:管理的灰度
  14. java socket 点对点_javaSocket点对点实现文件传输
  15. 前端面试题:如何让元素水平垂直居中?
  16. UG二次开发GRIP复制属性加强
  17. 【软件设计师09】多媒体技术
  18. ✔G【OPA828】放大器模块 超低输入电流偏置 同相/反相放大器 跟随器
  19. CVPR2019:自动驾驶最新进展总结
  20. 社群裂变的方法和优势

热门文章

  1. 【职场】愚兄从不因言语生怨
  2. 叉积求距离(简单几何)
  3. 打印驱动已安装,电脑上网正常,电脑无法连接打印机,无法打印
  4. CCIE-MPLS控制层面
  5. VsCode好用的神仙插件
  6. Avocado Guild,通过独具特色的P2E打开Web3世界的大门
  7. linux有哪些好用的ftp服务器?(vsftpd、ProFTPd、Pure-FTPd、FileZilla Server、CrushFTP)(WebDAV)
  8. 视频画中画随心变 浮空影视播放器体会
  9. 从事编程那些年经历的跨平台开发工具框架演变历史
  10. uni-app从后端返回的mp4链接视频截取一帧为封面