【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《MATLAB游戏编程实例(拼图)》,欢迎阅读!

MATLAB游戏编程实例(拼图)
这是一个简单的游戏,只要把数字按顺序排好就可以了。游戏方法是用鼠标点中数字,如果该数字相邻的格子为空,则自动移到到该空格。
本程序是由realghost编写,如果有问题可以与***************联系。
附图如下:
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<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('ÄãÒѾ-³É¹¦Æ´ºÃͼ£¡') 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);
本文来源:https://www.wddqxz.cn/d0be268e84868762caaed5cb.html