% 游戏名称:2048
% 实现的功能:2048基本游戏主体、分数显示、难度选择、历史记录、对应图片显示等
% 实现的功能:2048基本游戏主体、分数显示、难度选择、历史记录、对应图片显示等
% 完成时间:2018.06.24
@图片需另外下载或自己制作
![](https://i-blog.csdnimg.cn/blog_migrate/8ab633bc8f5280ba4e3c6595cdecb592.jpeg)
function game2048() % 主函数
initialize() % 初始化
hardAndNumberProbability() % 选择初始化难度
dispdata() % 显示初始化结果
end
function initialize() % 初始化函数,生成界面以及初始化游戏
global griddata hb photo2048 score scoreHandle gameover; % 全局变量
griddata = zeros(4); % 初始化4X4矩阵数据
rand_i = randi(16);
griddata(rand_i) = 2; % 随机位置生成一个2
score = 0 ; % 初始化分数
gameover = 0; % 初始化游戏结束标志位
figHandle = figure('Name','2048','MenuBar','none',... % 生成主窗口
'ToolBar','none','NumberTitle','off',...
'Units','normalized', 'Position',[0.39 0.30 0.3 0.6],...
'KeyPressFcn',@keyevent);
for xi =0:15 % 生成4*4按钮矩阵
ix=rem(xi,4);
iy = fix((xi+0.5)/4);
uicontrol(figHandle,'Style','pushbutton',...
'Units','normalized','position',[ix*0.25 iy*0.20 0.245 0.195],'KeyPressFcn',@keyevent)
end
hb = findall(gcf, 'Style', 'pushbutton');% 获得16个方格的句柄值
photo2048 = struct('p2',{imread('2.jpg')},'p4',{imread('4.jpg')},'p8',{imread('8.jpg')},... % 读取显示的图片
'p16',{imread('16.jpg')},'p32',{imread('32.jpg')},'p64',{imread('64.jpg')},...
'p128',{imread('128.jpg')},'p256',{imread('256.jpg')},'p512',{imread('512.jpg')},...
'p1024',{imread('1024.jpg')},'p2048',{imread('2048.jpg')},'p4096',{imread('4096.jpg')},...
'p8192',{imread('8192.jpg')});
% 这里需要导入图片
uicontrol(figHandle,'Style','text','Units','normalized',... % 生成2048标志
'Position',[0.01,0.81,0.3 0.15],'String','2048@',...
'FontSize',25,'FontName','微软雅黑');
uicontrol(figHandle,'Style','text','Units','normalized',