MATLAB游戏编程实例(拼_matlab经典编程实例
MATLAB游戏编程实例(拼由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“matlab经典编程实例”。
MATLAB游戏编程实例(拼图)
这是一个简单的游戏,只要把数字按顺序排好就可以了。游戏方法是用鼠标点中数字,如果该数字相邻的格子为空,则自动移到到该空格。
本程序是由realghost编写,如果有问题可以与 slqinyi@163.com 联系。
附图如下:
function pintu1()A = gen()
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
end
if col>1&A(row,col-1)==0 A(row,col-1)= num;A(row,col)= 0;
end
if col
end
drawmap(A)
zt = abs(A-G);
if sum(zt(:))==0
msgbox('ÄãÒѾ-³É¹¦Æ´ºÃͼ£¡')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);
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()y = inf*ones(1,9);for i = 1:9
while 1
a = randint(1,1,9);
if isempty(find(y==a))y(i)= a;break
end
end end
y = reshape(y,3,3);
当然可以啦,其实图像就是数字矩阵,图像的拼接就是矩阵的拼接,横着拼得行数相等,竖着拼得列数相等就行
例子
clc;clear;
a=imread('我的图片.jpg');[m n t]=size(a);
b=a(1:fix(m/2),:,:);%取图像的上半部分
c=a(fix(m/2)+1:end,:,:);%取图像的下半部分
figure(1);imshow(b);
figure(2);imshow(c);
%注意,上下拼接要求两幅图的列数要相同 %左右拼行数要相同
figure(3);d=[b;c];%把b,c拼起来,若左右拼接d=[b,c];imshow(d);