资源描述:
《有趣地matlab1.游戏程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、MATLAB游戏程序目录1.空格游戏22.华容道33.凑五子棋144.2048195.俄罗斯方块241.空格游戏functionpintu1()A=gen();G=[123;456;780];drawmap(A);while1[xpos,ypos]=ginput(1);col=ceil(xpos);row=3-ceil(ypos)+1;num=A(row,col);ifrow>1&A(row-1,col)==0A(row-1,col)=num;A(row,col)=0;endifrow<3&A(row+1,col)==0A(row+1,col)=num;A(r
2、ow,col)=0;endifcol>1&A(row,col-1)==0A(row,col-1)=num;A(row,col)=0;endifcol<3&A(row,col+1)==0A(row,col+1)=num;A(row,col)=0;enddrawmap(A)zt=abs(A-G);ifsum(zt(:))==0msgbox('恭喜您成功完成!')breakendendfunctiondrawmap(A)clf;holdonline([03],[00],'linewidth',4);line([33],[03],'linewidth',4);line
3、([03],[33],'linewidth',4);line([00],[03],'linewidth',4);fori=1:3forj=1:3drawrect([j-13-i],[j3-i],[j3-i+1],[j-13-i+1],'y',A(i,j));endendaxisequalaxisofffunctiondrawrect(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)ifnum==0text(0.5*(x1(1)+x2(1
4、)),0.5*(x1(2)+x4(2)),'','fontsize',24)elsetext(0.5*(x1(1)+x2(1))-0.05,0.5*(x1(2)+x4(2)),num2str(num),'fontsize',24)endfunctiony=gen()y=inf*ones(1,9);fori=1:9while1a=randint(1,1,9);ifisempty(find(y==a))y(i)=a;breakendendendy=reshape(y,3,3);2.华容道functionhuarongdao()A=[2113;2113;4665;4
5、775;7007];drawmap(A)while1ifA(5,2)==1&A(5,3)==1ch=menu('曹操成功逃出华容道!如果要继续玩,按“是”,否则按“否”','是','否');switchchcase1huarongdao();case2returnendend[xpos,ypos]=ginput(1);col=ceil(xpos);row=5-ceil(ypos)+1;juese=A(row,col);switchjuesecase1%点击了曹操[I,J]=find(A==1);rm=max(I);rn=min(I);lm=max(J);ln=
6、min(J);%判断是否能向左移ifln>1&isequalm(A([rn,rm],ln-1),[0;0])A([rn,rm],ln-1)=[1;1];A([rn,rm],lm)=[0;0];drawmap(A)end%判断是否能向右移iflm<4&isequalm(A([rn,rm],lm+1),[0;0])A([rn,rm],lm+1)=[1;1];A([rn,rm],ln)=[0;0];drawmap(A)end%判断是否能向下移ifrn>1&isequalm(A(rn-1,[ln,lm]),[0,0])A(rn-1,[ln,lm])=[1,1];A(r
7、n+1,[ln,lm])=[0,0];drawmap(A)end%判断是否能向上移ifrm<5&isequalm(A(rm+1,[ln,lm]),[0,0])A(rm+1,[ln,lm])=[1,1];A(rm-1,[ln,lm])=[0,0];drawmap(A)endcase2%点击了黄忠[I,J]=find(A==2);rm=max(I);rn=min(I);lm=max(J);ln=min(J);%判断是否能向左移ifln>1&isequalm(A([rn,rm],ln-1),[0;0])A([rn,rm],ln-1)=[2;2];A([rn,rm],
8、lm)=[0;0];drawmap(A