MATLAB学习笔记 实现超简单对对碰游戏
对对碰游戏,通过匹配相同的图像来赢得游戏。使用 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学习笔记 实现超简单对对碰游戏相关推荐
- 【学习笔记】超简单的快速傅里叶变换(FFT)(含全套证明)
整理的算法模板合集: ACM模板 目录 一.概念概述 二.前置知识 1. 多项式 2. 复数 4. 欧拉公式证明 3. 复数的单位根 / 单位向量 三.FFT 算法概述 四.离散傅里叶变换(DFT) ...
- 【学习笔记】超简单的快速数论变换(NTT)(FFT的优化)(含全套证明)
整理的算法模板合集: ACM模板 目录 一.前置知识 二.快速数论变换(NTT) 三.NTT证明(和FFT的关系) 四.NTT模板 数组形式的实现 vector形式的实现 点我看多项式全家桶(●^◡_ ...
- Markdown学习笔记(超简单)所有字符为英文字符!!!!!!
MarkDown学习笔记 标题 二级标题 ##+空格+文字 三级标题 ###+空格+文字 四级标题 ####+空格+文字 字体 hello,world! hello,world! 粗体:文字前后+** ...
- golang游戏开发学习笔记-开发一个简单的2D游戏(基础篇)
此文写在golang游戏开发学习笔记-创建一个能自由探索的3D世界之后,感兴趣可以先去那篇文章了解一些基础知识,在这篇文章里我们要创建一个简单的2D游戏场景以及配套的人物,并实现人物运动和碰撞检测功能 ...
- 【学习笔记】超简单的多项式除法(含完整证明)
整理的算法模板合集: ACM模板 目录 多项式除法 P4512 [模板]多项式除法 tips 还没调出来的vector版本代码 点我看多项式全家桶(●^◡_◡◡^●) 多项式除法 P4512 [模板 ...
- 【学习笔记】超简单的多项式求指(含泰勒展开式、牛顿迭代完成证明)
整理的算法模板合集: ACM模板 目录 多项式求指 泰勒展开式 牛顿迭代 牛顿迭代应用 P4726 [模板]多项式指数函数(多项式 exp) 数组版 (1.64s) vector版 (960 ms) ...
- 【学习笔记】超简单的多项式反三角函数(含全套证明)
整理的算法模板合集: ACM模板 目录 [模板]P5265 多项式反三角函数 点我看多项式全家桶(●^◡_◡◡^●) [模板]P5265 多项式反三角函数 P5265 多项式反三角函数 前置函数多项 ...
- 【学习笔记】超简单的多项式三角函数(含全套证明)
整理的算法模板合集: ACM模板 目录 P5264 多项式三角函数 点我看多项式全家桶(●^∀^●) P5264 多项式三角函数 如果模的是任意p的话可以枚举i,或者使用Cipolla算法. //#p ...
- 【学习笔记】超简单的多项式快速幂
整理的算法模板合集: ACM模板 目录 P5245 [模板]多项式快速幂 普通版(a0=1a_0=1a0=1) vector版本AC代码 加强版(a0≠1a_0 \neq 1a0=1) 点我看 ...
最新文章
- java script valueof_Javascript new Date().valueOf()的作用与时间戳由来详解
- springboot引入lib包_springboot项目打包引入lib目录下jar包
- 深度强化学习的 18 个关键问题 | PaperDaily #30
- Round-Robin负载均衡算法及其实现原理
- 关于文章cisco漏洞4786
- (转)Palantir: 神秘的大数据公司
- Activiti6工作流入门初体验
- 为什么有符号数0XFFFF FFFF代表-1?
- 阿里巴巴的微服务开源之路
- 在编译Android时,开机不锁屏
- WKWebView 和UIWebView userAgent 全局设置和局部设置 9.0 12.0 兼容性问题
- 【软件工程】数据流图 ( 数据流图简介 | 数据流图概念 | 数据流 | 加工 | 数据存储 | 外部实体 | 数据流图分层 | 顶层数据流图 | 中层数据流图 | 底层数据流图 )
- Golang 定时器timer和ticker
- IOS开发之——手动设置屏幕旋转
- 一款好用的设计师导航,让设计师拥有良好的设计体验
- java 银行存取款_使用JAVA编写一个简单的银行存取款程序
- 关于登录账号时提示系统不存在此账户,但其它电脑能够登录成功的解决方案
- 实现FTP服务器免登陆下载PDF文件转base64在下载到本地|服务器
- python 复制替换文件_在Python中复制和替换文件
- 人生感悟:他们这样爬出烂泥般的人生