对对碰游戏,通过匹配相同的图像来赢得游戏。使用 uicontrol 中的按钮和一些图像来实现这个游戏。

设计有一个 2 x 2 矩阵,其中隐藏了 2 对等效图像(读取文件夹下的图片,至少含有两张rgb的图像)。用户将被允许随机选择 2 个图块。如果两个图像相同,则两个图块都将消失。如果没有,它会回到原来的形式。当所有对匹配时,游戏完成并且用户可以进入下一场。

效果如下:

代码如下:

function tile_memory_gameclear all;clcclose all%GLOBAL VARIABLESglobal pname randicon sz flag PId fname items pv ni nj lc Ic Fg nm ;%FIGURE WINDOWFg=figure('Position',[300 200 800 550] ,'Name','TILE MEMORY GAME','NumberTitle','off','MenuBar','None');%FETCH PNG FORMAT FILES/IMAGESfiles = dir('*.jpg');fname = {files.name};%INITIALIZATIONitems=2;ni=2;nj=2;sz=100;lc=1;nm= uicontrol('Style','Pushbutton','Position',[650 320 150 50]);arrange_tile;function arrange_tileIc=0;pv=0;%RANDOMIZE THE TILESrndno = randperm(numel(fname),items);row = [rndno rndno];randicon = row(:,randperm(numel(row)));inc=1;flag=0;%CREATE PUSHBUTTONSfor i = 1 : nifor j = 1:njpname(inc)=  uicontrol('Style','Pushbutton','Position',[5+(i*sz) 90*5-(j*sz) sz-2 sz-2],'UserData',inc,'callback',@display_tile);inc=inc+1;endendlstat ='Number of Moves: 0 ';          set(nm,'String',lstat);endfunction display_tile(obj,~) %OBTAIN THE USERDATA FROM THE PUSHBUTTON CLICKEDcurrvalue=get(obj,'UserData');img = imread(cell2mat(fname(randicon(currvalue))));%DISPLAY THE ICON/IMAGE ON THE PUSHBUTTONcimg = imresize(img,[sz-8 sz-8]);set(pname(currvalue),'CData',cimg);if(flag==0)PId = currvalue;flag=1;elseif(currvalue~=PId)pause(0.35);
%                IF TWO ICONS ARE SAME                        if(randicon(currvalue)==randicon(PId))
%                TO SET THE PUSHBUTTONS INVISIBLE
%                set(pname(currvalue),'visible','off');
%                set(pname(PId),'visible','off');%                TO SET THE PUSHBUTTONS BLACKset(pname(PId),'CData',zeros([sz sz 3]),'callback','default','String','n');set(pname(currvalue),'CData',zeros([sz sz 3]),'callback','default','String','n');pv=pv+1;else
%                IF TWO ICONS ARE DIFFERENT                  set(pname(currvalue),'CData','default');set(pname(PId),'CData','default');endif(Ic>=(items*2))%Use your own ideas hereelseflag=0;calculate_moves;chk_new_tiles;endendendfunction chk_new_tilesif(pv==items)if(items==8)%END OF THE GAMEelse%INCREASE THE TILE SIZElc=lc+1;%Increment ni or nj or both%ni = ni+1;%nj = nj+1;items=(ni*nj)/2;arrange_tile;endendendfunction calculate_movesend
end

MATLAB学习笔记 实现超简单对对碰游戏相关推荐

  1. 【学习笔记】超简单的快速傅里叶变换(FFT)(含全套证明)

    整理的算法模板合集: ACM模板 目录 一.概念概述 二.前置知识 1. 多项式 2. 复数 4. 欧拉公式证明 3. 复数的单位根 / 单位向量 三.FFT 算法概述 四.离散傅里叶变换(DFT) ...

  2. 【学习笔记】超简单的快速数论变换(NTT)(FFT的优化)(含全套证明)

    整理的算法模板合集: ACM模板 目录 一.前置知识 二.快速数论变换(NTT) 三.NTT证明(和FFT的关系) 四.NTT模板 数组形式的实现 vector形式的实现 点我看多项式全家桶(●^◡_ ...

  3. Markdown学习笔记(超简单)所有字符为英文字符!!!!!!

    MarkDown学习笔记 标题 二级标题 ##+空格+文字 三级标题 ###+空格+文字 四级标题 ####+空格+文字 字体 hello,world! hello,world! 粗体:文字前后+** ...

  4. golang游戏开发学习笔记-开发一个简单的2D游戏(基础篇)

    此文写在golang游戏开发学习笔记-创建一个能自由探索的3D世界之后,感兴趣可以先去那篇文章了解一些基础知识,在这篇文章里我们要创建一个简单的2D游戏场景以及配套的人物,并实现人物运动和碰撞检测功能 ...

  5. 【学习笔记】超简单的多项式除法(含完整证明)

    整理的算法模板合集: ACM模板 目录 多项式除法 P4512 [模板]多项式除法 tips 还没调出来的vector版本代码 点我看多项式全家桶(●^◡_◡◡​^●) 多项式除法 P4512 [模板 ...

  6. 【学习笔记】超简单的多项式求指(含泰勒展开式、牛顿迭代完成证明)

    整理的算法模板合集: ACM模板 目录 多项式求指 泰勒展开式 牛顿迭代 牛顿迭代应用 P4726 [模板]多项式指数函数(多项式 exp) 数组版 (1.64s) vector版 (960 ms) ...

  7. 【学习笔记】超简单的多项式反三角函数(含全套证明)

    整理的算法模板合集: ACM模板 目录 [模板]P5265 多项式反三角函数 点我看多项式全家桶(●^◡_◡◡​^●) [模板]P5265 多项式反三角函数 P5265 多项式反三角函数 前置函数多项 ...

  8. 【学习笔记】超简单的多项式三角函数(含全套证明)

    整理的算法模板合集: ACM模板 目录 P5264 多项式三角函数 点我看多项式全家桶(●^∀^●) P5264 多项式三角函数 如果模的是任意p的话可以枚举i,或者使用Cipolla算法. //#p ...

  9. 【学习笔记】超简单的多项式快速幂

    整理的算法模板合集: ACM模板 目录 P5245 [模板]多项式快速幂 普通版(a0=1a_0=1a0​=1) vector版本AC代码 加强版(a0≠1a_0 \neq 1a0​​=1) 点我看 ...

最新文章

  1. java script valueof_Javascript new Date().valueOf()的作用与时间戳由来详解
  2. springboot引入lib包_springboot项目打包引入lib目录下jar包
  3. 深度强化学习的 18 个关键问题 | PaperDaily #30
  4. Round-Robin负载均衡算法及其实现原理
  5. 关于文章cisco漏洞4786
  6. (转)Palantir: 神秘的大数据公司
  7. Activiti6工作流入门初体验
  8. 为什么有符号数0XFFFF FFFF代表-1?
  9. 阿里巴巴的微服务开源之路
  10. 在编译Android时,开机不锁屏
  11. WKWebView 和UIWebView userAgent 全局设置和局部设置 9.0 12.0 兼容性问题
  12. 【软件工程】数据流图 ( 数据流图简介 | 数据流图概念 | 数据流 | 加工 | 数据存储 | 外部实体 | 数据流图分层 | 顶层数据流图 | 中层数据流图 | 底层数据流图 )
  13. Golang 定时器timer和ticker
  14. IOS开发之——手动设置屏幕旋转
  15. 一款好用的设计师导航,让设计师拥有良好的设计体验
  16. java 银行存取款_使用JAVA编写一个简单的银行存取款程序
  17. 关于登录账号时提示系统不存在此账户,但其它电脑能够登录成功的解决方案
  18. 实现FTP服务器免登陆下载PDF文件转base64在下载到本地|服务器
  19. python 复制替换文件_在Python中复制和替换文件
  20. 人生感悟:他们这样爬出烂泥般的人生

热门文章

  1. SmartisanT2发布会PPT模板
  2. 【编程随想】聊聊分布式散列表(DHT)的原理——以 Kademlia(Kad) 和 Chord 为例
  3. 获取通讯录、通话记录、短信
  4. 服务器问题-服务器可以远程登录,本地登录不了
  5. servlet工作原理图
  6. Mosquitto-1.5.4源码分析,数据结构之哈希表uthash
  7. 面试必问:一文弄懂MySQL数据库索引之底层数据结构和索引类型
  8. this和super的区别:
  9. devcpp中使用unordered_map
  10. 计算机带不起大型游戏怎么回事,电脑带不动原神怎么办