function pintu1()
% Pin Tu
% 3x3的方格拼图
% 将数字1~8按顺序排列
% 拼图完成,游戏结束
% producer yuxuan
A = gen()%生成1~9的随机数
G = [1 2 3;4 5 6;7 8 0];%拼图的格式
drawmap(A);%画拼图
while 1%玩家操作
[xpos,ypos] = ginput(1);
col = ceil(xpos);
row = 3-ceil(ypos)+1;
num = A(row,col);
%处理玩家的操作
if row>1&A(row-1,col)==0
A(row-1,col) = num;
A(row,col) = 0;
end
if row<3&A(row+1,col)==0
A(row+1,col) = num;
A(row,col) = 0;
end
if col>1&A(row,col-1)==0
A(row,col-1) = num;
A(row,col) = 0;
end
if col<3&A(row,col+1)==0
A(row,col+1) = num;
A(row,col) = 0;
end
drawmap(A)
zt = abs(A-G);
%拼图操作
if sum(zt(:))==0
msgbox('win')
break
end
%完成拼图,游戏结束
end
function drawmap(A)
%画拼图
clf;
hold on
line([0 3],[0 0],'linewidth',4);
line([3 3],[0 3],'linewidth',4);
line([0 3],[3 3],'linewidth',4);
line([0 0],[0 3],'linewidth',4);
%画出3x3的方格
for i = 1:3
for j = 1:3
drawrect([j-1 3-i],[j 3-i],[j 3-i+1],[j-1 3-i+1],'y',A(i,j));
%画每一个小格,以及填色
end
end
%画出九宫格
axis equal%取消自动放大变化
axis off%隐藏坐标
function drawrect(x1,x2,x3,x4,color,num)
%画每一个小格,以及填色
x = [x1(1) x2(1) x3(1) x4(1)];
y = [x1(2) x2(2) x3(2) x4(2)];
fill(x,y,color)
%填色
if num==0
text(0.5*(x1(1)+x2(1)),0.5*(x1(2)+x4(2)),' ','fontsize',24)
else
text(0.5*(x1(1)+x2(1))-0.05,0.5*(x1(2)+x4(2)),num2str(num),'fontsize',24)
end %显示数字
function y = gen()
%生成1~9的随机数
y = inf*ones(1,9);%生成九个空格
for i = 1:9
while 1
a = randint(1,1,9);
%在1~9中生成一个随机数
if isempty(find(y==a))%查找是否有相同的数出现
y(i) = a;
break
end
%保证九个随机数不会重复
end
end
y = reshape(y,3,3);
【游戏】基于matlab模拟拼图游戏.zip
版权申诉
26 浏览量
2022-04-05
18:20:07
上传
评论 1
收藏 31KB ZIP 举报
天天Matlab科研工作室
- 粉丝: 2w+
- 资源: 7253
最新资源
- 【实务学习资料】python的Excel自动处理学习资料
- 2000-2020年全球194个国家双边贸易进口额出口额进出口总额
- 2003-2019全国各省地级市工业废水排放量城市废水排放量面板数据-Excel完整版
- 北京大学中国商业银行数字化转型指数 2010-2021年EXCEL
- 各国反补贴措施数量指标2000-2020-反补贴措施-贸易壁垒情况
- MFC 列表控件添加修改删除实例
- 2000-2021年 44指标 美国国际收支平衡表 德国国际收支平衡表 印度 中国国际收支平衡表
- Stata空间面板模型(slm,sem,sdm)包括do文件,样例数据和详细说明
- 重磅更新上市公司高管团队异质性数据处理Stata代码(2008-2022年数据)
- 基于QT+C++实现的文本或窗口炫酷有趣的滚动条-果冻条+源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈