有趣的MATLAB-1.游戏程序.docx_第1页
有趣的MATLAB-1.游戏程序.docx_第2页
有趣的MATLAB-1.游戏程序.docx_第3页
有趣的MATLAB-1.游戏程序.docx_第4页
有趣的MATLAB-1.游戏程序.docx_第5页
免费预览已结束,剩余38页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB游戏程序目录1.空格游戏22.华容道33.凑五子棋144.2048195.俄罗斯方块241.空格游戏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 row1&A(row-1,col)=0 A(row-1,col) = num; A(row,col) = 0; end if row1&A(row,col-1)=0 A(row,col-1) = num; A(row,col) = 0; end if col1&isequalm(A(rn,rm,ln-1),0;0) A(rn,rm,ln-1)=1;1; A(rn,rm,lm)=0;0; drawmap(A) end %判断是否能向右移 if lm1&isequalm(A(rn-1,ln,lm),0,0) A(rn-1,ln,lm)=1,1; A(rn+1,ln,lm)=0,0; drawmap(A) end %判断是否能向上移 if rm1&isequalm(A(rn,rm,ln-1),0;0) A(rn,rm,ln-1)=2;2; A(rn,rm,lm)=0;0; drawmap(A) end %判断是否能向右移 if lm1&A(rn-1,ln)=0 if rm5&A(rm+1,ln)=0%如果又能上移又能下移,则要点击的部位 ch = menu(请选择移到的方向:,上,下) switch ch case 1%上移 A(rn-1,ln) = 2; A(rn+1,ln) = 0; drawmap(A) case 2%下移 A(rm+1,ln) = 2; A(rm-1,ln) = 0; drawmap(A) end else%只能上移 A(rn-1,ln) = 2; A(rn+1,ln) = 0; drawmap(A) end elseif rm1&isequalm(A(rn,rm,ln-1),0;0) A(rn,rm,ln-1)=3;3; A(rn,rm,lm)=0;0; drawmap(A) end %判断是否能向右移 if lm1&A(rn-1,ln)=0 if rm5&A(rm+1,ln)=0%如果又能上移又能下移,则要点击的部位 ch = menu(请选择移到的方向:,上,下) switch ch case 1%上移 A(rn-1,ln) = 3; A(rn+1,ln) = 0; drawmap(A) case 2%下移 A(rm+1,ln) = 3; A(rm-1,ln) = 0; drawmap(A) end else%只能上移 A(rn-1,ln) = 3; A(rn+1,ln) = 0; drawmap(A) end elseif rm1&isequalm(A(rn,rm,ln-1),0;0) A(rn,rm,ln-1)=4;4; A(rn,rm,lm)=0;0; drawmap(A) end %判断是否能向右移 if lm1&A(rn-1,ln)=0 if rm5&A(rm+1,ln)=0%如果又能上移又能下移,则要点击的部位 ch = menu(请选择移到的方向:,上,下) switch ch case 1%上移 A(rn-1,ln) = 4; A(rn+1,ln) = 0; drawmap(A) case 2%下移 A(rm+1,ln) = 4; A(rm-1,ln) = 0; drawmap(A) end else%只能上移 A(rn-1,ln) = 4; A(rn+1,ln) = 0; drawmap(A) end elseif rm1&isequalm(A(rn,rm,ln-1),0;0) A(rn,rm,ln-1)=5;5; A(rn,rm,lm)=0;0; drawmap(A) end %判断是否能向右移 if lm1&A(rn-1,ln)=0 if rm5&A(rm+1,ln)=0%如果又能上移又能下移,则要点击的部位 ch = menu(请选择移到的方向:,上,下) switch ch case 1%上移 A(rn-1,ln) = 5; A(rn+1,ln) = 0; drawmap(A) case 2%下移 A(rm+1,ln) = 5; A(rm-1,ln) = 0; drawmap(A) end else%只能上移 A(rn-1,ln) = 5; A(rn+1,ln) = 0; drawmap(A) end elseif rm1 & isequalm(A(rn-1,ln,lm),0,0) A(rn-1,ln,lm)=6,6; A(rn,ln,lm)=0,0; drawmap(A) end %判断是否能向下移 if rm1&A(rn,ln-1)=0 if lm4&A(rm,lm+1)=0%如果又能左移又能右移,则要点击的部位 ch = menu(请选择移到的方向:,左,右) switch ch case 1%左移 A(rm,ln-1) = 6; A(rm,ln+1) = 0; drawmap(A) case 2%右移 A(rm,lm+1) = 6; A(rm,lm-1) = 0; drawmap(A) end else%只能左移 A(rm,ln-1) = 6; A(rm,ln+1) = 0; drawmap(A) end elseif lm1&A(row-1,col)=0 % 上 if col1&A(row,col-1)=0 % 左 ch = menu(请选择移到的方向:,上,左) switch ch case 1 A(row-1,col) = 7; A(row,col) = 0; drawmap(A) case 2 A(row,col-1) = 7; A(row,col) = 0; drawmap(A) end elseif row5&A(row+1,col)=0% 下 ch = menu(请选择移到的方向:,上,下) switch ch case 1 A(row-1,col) = 7; A(row,col) = 0; drawmap(A) case 2 A(row+1,col) = 7; A(row,col) = 0; drawmap(A) end elseif col1&A(row,col-1)=0%左 if row5&A(row+1,col)=0%下 ch = menu(请选择移到的方向:,左,下) switch ch case 1 A(row,col-1) = 7; A(row,col) = 0; drawmap(A) case 2 A(row+1,col) = 7; A(row,col) = 0; drawmap(A) end elseif col4&A(row,col+1)=0%右 ch = menu(请选择移到的方向:,左,右) switch ch case 1 A(row,col-1) = 7; A(row,col) = 0; drawmap(A) case 2 A(row,col+1) = 7; A(row,col) = 0; drawmap(A) end else%只能向左 A(row,col-1) = 7; A(row,col) = 0; drawmap(A) end elseif row5&A(row+1,col)=0%下 if col4&A(row,col+1)=0%右 ch = menu(请选择移到的方向:,下,右) switch ch case 1 A(row+1,col) = 7; A(row,col) = 0; drawmap(A) case 2 A(row,col+1) = 7; A(row,col) = 0; drawmap(A) end else%只能向下 A(row+1,col) = 7; A(row,col) = 0; drawmap(A) end elseif col4&A(row,col+1)=0%只能向右 A(row,col+1) = 7; A(row,col) = 0; drawmap(A) end endendfunction drawmap(A)clfhold on%曹操I J = find(A=1);x1 = min(J)-1;x2 = max(J);y1 = 5-(min(I)-1);y2 = 5-max(I);drawrect(x1,y1,x2,y1,x2,y2,x1,y2,r)text(0.5*(x1+x2)-0.5,0.5*(y1+y2),曹操,fontsize,28)% 黄忠I,J = find(A=2);x1 = min(J)-1;x2 = max(J);y1 = 5-(min(I)-1);y2 = 5-max(I);drawrect(x1,y1,x2,y1,x2,y2,x1,y2,y)text(0.5*(x1+x2)-0.26,0.5*(0.5*(y1+y2)+y1),黄,fontsize,28)text(0.5*(x1+x2)-0.26,0.5*(0.5*(y1+y2)+y2),忠,fontsize,28)% 张飞I,J = find(A=3);x1 = min(J)-1;x2 = max(J);y1 = 5-(min(I)-1);y2 = 5-max(I);drawrect(x1,y1,x2,y1,x2,y2,x1,y2,y)text(0.5*(x1+x2)-0.26,0.5*(0.5*(y1+y2)+y1),张,fontsize,28)text(0.5*(x1+x2)-0.26,0.5*(0.5*(y1+y2)+y2),飞,fontsize,28)% 马超I,J = find(A=4);x1 = min(J)-1;x2 = max(J);y1 = 5-(min(I)-1);y2 = 5-max(I);drawrect(x1,y1,x2,y1,x2,y2,x1,y2,y)text(0.5*(x1+x2)-0.26,0.5*(0.5*(y1+y2)+y1),马,fontsize,28)text(0.5*(x1+x2)-0.26,0.5*(0.5*(y1+y2)+y2),超,fontsize,28)% 赵云I,J = find(A=5);x1 = min(J)-1;x2 = max(J);y1 = 5-(min(I)-1);y2 = 5-max(I);drawrect(x1,y1,x2,y1,x2,y2,x1,y2,y)text(0.5*(x1+x2)-0.26,0.5*(0.5*(y1+y2)+y1),赵,fontsize,28)text(0.5*(x1+x2)-0.26,0.5*(0.5*(y1+y2)+y2),云,fontsize,28)% 关羽I,J = find(A=6);x1 = min(J)-1;x2 = max(J);y1 = 5-(min(I)-1);y2 = 5-max(I);drawrect(x1,y1,x2,y1,x2,y2,x1,y2,y)text(0.5*(x1+0.5*(x1+x2)-0.26,0.5*(y1+y2),关,fontsize,28)text(0.5*(0.5*(x1+x2)+x2)-0.26,0.5*(y1+y2),羽,fontsize,28)%小卒I,J = find(A=7);for i = 1:length(I) x1 = J(i)-1; x2 = J(i); y1 = 5-(I(i)-1); y2 = 5-I(i); drawrect(x1,y1,x2,y1,x2,y2,x1,y2,g) text(0.5*(x1+x2)-0.26,0.5*(y1+y2),卒,fontsize,28)end% 画背景line(0 4,0 0,color,b,linewidth,4)line(0 4,5 5,color,b,linewidth,4)line(0 0,0 5,color,b,linewidth,4)line(4 4,0 5,color,b,linewidth,4)for i = 1:4 line(0 4,i i,color,b,linestyle,-)endfor i = 1:3 line(i i,0 5,color,b,linestyle,-)endaxis equalaxis(0 4 0 5)axis offfunction drawrect(x1,x2,x3,x4,color)x = x1(1) x2(1) x3(1) x4(1);y = x1(2) x2(2) x3(2) x4(2);fill(x,y,color)3.凑五子棋function = five()global a h m1 n1 m2 n2 t h1 h2 h3 color score hsc ha sshf=figure(resize,off,name,five,. position,360 280 560 420,numbertitle,off);ha=axes;set(gcf,menubar,none,color,0.3 0.3 0.3)set(gca,position,0.2300 0.1100 0.7750 0.8150)set(gca,xlim,0,9,ylim,0,9)set(ha,xtick,ytick,box,on)set(ha,color,0.7 0.6,0.6)set(ha,DataAspectRatio,1 1 1,PlotBoxAspectRatio,1 1 1)x=repmat(0;9,1,9);y=1:9;1:9;line(x,y,color,k)line(y,x,color,k)hst=uicontrol(style,text,string,Score,fontsize,30,. units,normal,position,0.02,0.55,0.26,0.14,parent,hf,. ForegroundColor,w,backgroundcolor,0.3 0.3 0.3,. fontweight,bold);hsc=uicontrol(style,text,string,0,fontsize,24,. units,normal,position,0.02,0.4,0.26,0.14,parent,hf,. ForegroundColor,w,backgroundcolor,0.3 0.3 0.3,. fontweight,bold);hbt=uicontrol(style,pushbutton,string,Restart,fontsize,18,. units,normal,position,0.02,0.16,0.26,0.14,parent,hf,. fontweight,bold,callback,restart);color=. 1 1 0; 1 0 1; 0 1 1; 1 0 0; 0 1 0; 0 0 1; 0.7 0.3 0; ;h1=annotation(ellipse,0.04,0.84,0.06,0.08,facecolor,k);h2=annotation(ellipse,0.12,0.84,0.06,0.08,facecolor,k);h3=annotation(ellipse,0.2,0.84,0.06,0.08,facecolor,k);set(ha,buttondownfcn,select2)initializefunction initialize()global a h m1 n1 m2 n2 t h1 h2 h3 color score hsc ssa=zeros(9);h=zeros(9)*NaN;m1=;n1=;m2=;n2=;score=0;ss=0;k=rs(1:81,5);t=ceil(rand(1,5)*7);a(k)=t;m,n = ind2sub(9,9,k);y=9.5-m;x=n-0.5;for p=1:5 h(k(p)=line(x(p),y(p),marker,o,markersize,24,. markerfacecolor,color(t(p),:),markeredgecolor,none,. buttondownfcn,select1);endt=ceil(rand(1,3)*7);set(h1,facecolor,color(t(1),:)set(h2,facecolor,color(t(2),:)set(h3,facecolor,color(t(3),:)function k=rs(s,n);for m=1:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论