资源简介
利用MATLAB编写的拼图游戏完整程序文件,包含M文件以及用到的图片文件,程序调试运行无误,点击运行即可进行拼图游戏。
代码片段和文件信息
%% 制作人:吴限
function jigsaw()
%% 主函数
Tag_A= Disrupt();%将图像的排列顺序打乱
drawmap(Tag_A);%调用画图函数绘制九宫格
set(gcf‘windowButtonDownFcn‘@ButtonDownFcn);%点击鼠标时调用ButtonDownFcn函数
Tag_B=reshape(Tag_A33);%将1*9的矩阵A转换为3*3矩阵B
global Tag;%定义全局变量,方便传递参数
Tag=Tag_B;
function ButtonDownFcn(srcevent)
%% 回调函数,鼠标点击事件发生时调用
pt=get(gca‘CurrentPoint‘);%获取当前鼠标点击位置坐标
xpos=pt(11);
ypos=pt(12);
col = ceil(ypos/100);%鼠标位置横坐标取整
row = ceil(xpos/100);%鼠标位置纵坐标取整
global Tag;
if(col<=3&&col>0)&&(row<=3&&row>0)%鼠标点击位置在有效范围内
Tag=movejig(Tagrowcol);%按点击位置移动拼图
C=reshape(Tag19);
drawmap(C)%调用划线函数
G = [1 2 3 4 5 6 7 8 0];%顺序矩阵
zt = abs(C-G);%比较两个矩阵
if sum(zt(:))==0%顺序已经完全吻合
image=imread(‘jigsawImage.jpeg‘);
imshow(image)
msgbox(‘You did a good job 恭喜完成!!!‘)%提示完成信息
return%完成游戏跳出while循环
end
else
return
end
function tag=movejig(tagrowcol)
%% 坐标表示与矩阵行列系数不同需进行转换
% 4个if分4种情况对不同位置处的点坐标与矩阵行列式统一
num = tag(rowcol);%鼠标位置与号码牌一致
if (row>1)&&(tag(row-1col)==0)%第一第二行出现空格(0)
tag(row-1col) = num;
tag(rowcol) = 0;
end
if (row<3)&&(tag(row+1col)==0)%第二三行出现空格
tag(row+1col) = num;
tag(rowcol) = 0;
end
if (col>1)&&(tag(rowcol-1)==0)%第二三列出现空格
tag(rowcol-1) = num;
tag(rowcol) = 0;
end
if (col<3)&&(tag(rowcol+1)==0)%第一二列出现空格
tag(rowcol+1) = num;
tag(rowcol) = 0;
end
function y = Disrupt()
%% 随机打乱原拼图排列顺序
y =[123456780];
y = reshape(y33);
for i = 1:180
row=randi([13]);%产生一个范围在1到3的整数
col=randi([13]);
y=movejig(yrowcol);%按随机产生的动作打乱拼图
end
y = reshape(y19);
function x = choose(imageindex)
%% 根据索引选择对应位置上的拼图块
if index>0
row=fix((index-1)/3);
column=mod(index-13);
x=image(1+row*100:100*(row+1)1+column*100:100*(column+1):);
else
x=uint8(255*ones(1001003));%拼图块9矩阵数据
end
function drawmap(A)
%% 将运算数字与对应拼图对应显示图片
image=imread(‘jigsawImage.jpeg‘);
n=image;
for i=1:9
row=fix((i-1)/3);%计算行
column=mod(i-13);%计算列
n(1+row*100:100*(row+1)1+column*100:100*(column+1):)=choose(imageA(i));
end
imshow(n)%显示拼图
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2615 2018-02-14 18:28 jigsaw puzzle\jigsaw.m
文件 45040 2018-02-09 17:09 jigsaw puzzle\jigsawImage.jpeg
目录 0 2018-02-18 21:32 jigsaw puzzle\
- 上一篇:codeblocks16.01全新汉化包 绿色版
- 下一篇:频率调制雷达信号
评论
共有 条评论