




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.zMATLAB游戏程序目录1.空格游戏22.华容道33.凑五子棋34.204835.俄罗斯方块31.空格游戏functionpintu1()A=gen();G=[123;456;780];drawmap(A);while1[*pos,ypos]=ginput(1);col=ceil(*pos);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(row,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(:))==0msgbo*('恭喜您成功完成!')breakendendfunctiondrawmap(A)clf;holdonline([03],[00],'linewidth',4);line([33],[03],'linewidth',4);line([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));endenda*isequala*isofffunctiondrawrect(*1,*2,*3,*4,color,num)*=[*1(1)*2(1)*3(1)*4(1)];y=[*1(2)*2(2)*3(2)*4(2)];fill(*,y,color)ifnum==0te*t(0.5*(*1(1)+*2(1)),0.5*(*1(2)+*4(2)),'','fontsize',24)elsete*t(0.5*(*1(1)+*2(1))-0.05,0.5*(*1(2)+*4(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;4775;7007];drawmap(A)while1ifA(5,2)==1&A(5,3)==1ch=menu('曹操成功逃出华容道!如果要继续玩,按“是〞,否则按“否〞','是','否');switchchcase1huarongdao();case2returnendend[*pos,ypos]=ginput(1);col=ceil(*pos);row=5-ceil(ypos)+1;juese=A(row,col);switchjuesecase1%点击了曹操[I,J]=find(A==1);rm=ma*(I);rn=min(I);lm=ma*(J);ln=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(rn+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=ma*(I);rn=min(I);lm=ma*(J);ln=min(J);%判断是否能向左移ifln>1&isequalm(A([rn,rm],ln-1),[0;0])A([rn,rm],ln-1)=[2;2];A([rn,rm],lm)=[0;0];drawmap(A)end%判断是否能向右移iflm<4&isequalm(A([rn,rm],lm+1),[0;0])A([rn,rm],lm+1)=[2;2];A([rn,rm],ln)=[0;0];drawmap(A)endifrn>1&A(rn-1,ln)==0ifrm<5&A(rm+1,ln)==0%如果又能上移又能下移,则要点击的部位ch=menu('请选择移到的方向:','上','下')switchchcase1%上移A(rn-1,ln)=2;A(rn+1,ln)=0;drawmap(A)case2%下移A(rm+1,ln)=2;A(rm-1,ln)=0;drawmap(A)endelse%只能上移A(rn-1,ln)=2;A(rn+1,ln)=0;drawmap(A)endelseifrm<5&A(rm+1,ln)==0A(rm+1,ln)=2;A(rm-1,ln)=0;drawmap(A)endcase3%*飞[I,J]=find(A==3);rm=ma*(I);rn=min(I);lm=ma*(J);ln=min(J);%判断是否能向左移ifln>1&isequalm(A([rn,rm],ln-1),[0;0])A([rn,rm],ln-1)=[3;3];A([rn,rm],lm)=[0;0];drawmap(A)end%判断是否能向右移iflm<4&isequalm(A([rn,rm],lm+1),[0;0])A([rn,rm],lm+1)=[3;3];A([rn,rm],ln)=[0;0];drawmap(A)endifrn>1&A(rn-1,ln)==0ifrm<5&A(rm+1,ln)==0%如果又能上移又能下移,则要点击的部位ch=menu('请选择移到的方向:','上','下')switchchcase1%上移A(rn-1,ln)=3;A(rn+1,ln)=0;drawmap(A)case2%下移A(rm+1,ln)=3;A(rm-1,ln)=0;drawmap(A)endelse%只能上移A(rn-1,ln)=3;A(rn+1,ln)=0;drawmap(A)endelseifrm<5&A(rm+1,ln)==0A(rm+1,ln)=3;A(rm-1,ln)=0;drawmap(A)endcase4%马超[I,J]=find(A==4);rm=ma*(I);rn=min(I);lm=ma*(J);ln=min(J);%判断是否能向左移ifln>1&isequalm(A([rn,rm],ln-1),[0;0])A([rn,rm],ln-1)=[4;4];A([rn,rm],lm)=[0;0];drawmap(A)end%判断是否能向右移iflm<4&isequalm(A([rn,rm],lm+1),[0;0])A([rn,rm],lm+1)=[4;4];A([rn,rm],ln)=[0;0];drawmap(A)endifrn>1&A(rn-1,ln)==0ifrm<5&A(rm+1,ln)==0%如果又能上移又能下移,则要点击的部位ch=menu('请选择移到的方向:','上','下')switchchcase1%上移A(rn-1,ln)=4;A(rn+1,ln)=0;drawmap(A)case2%下移A(rm+1,ln)=4;A(rm-1,ln)=0;drawmap(A)endelse%只能上移A(rn-1,ln)=4;A(rn+1,ln)=0;drawmap(A)endelseifrm<5&A(rm+1,ln)==0A(rm+1,ln)=4;A(rm-1,ln)=0;drawmap(A)endcase5%赵云[I,J]=find(A==5);rm=ma*(I);rn=min(I);lm=ma*(J);ln=min(J);%判断是否能向左移ifln>1&isequalm(A([rn,rm],ln-1),[0;0])A([rn,rm],ln-1)=[5;5];A([rn,rm],lm)=[0;0];drawmap(A)end%判断是否能向右移iflm<4&isequalm(A([rn,rm],lm+1),[0;0])A([rn,rm],lm+1)=[5;5];A([rn,rm],ln)=[0;0];drawmap(A)endifrn>1&A(rn-1,ln)==0ifrm<5&A(rm+1,ln)==0%如果又能上移又能下移,则要点击的部位ch=menu('请选择移到的方向:','上','下')switchchcase1%上移A(rn-1,ln)=5;A(rn+1,ln)=0;drawmap(A)case2%下移A(rm+1,ln)=5;A(rm-1,ln)=0;drawmap(A)endelse%只能上移A(rn-1,ln)=5;A(rn+1,ln)=0;drawmap(A)endelseifrm<5&A(rm+1,ln)==0A(rm+1,ln)=5;A(rm-1,ln)=0;drawmap(A)endcase6%关羽[I,J]=find(A==6);rm=ma*(I);rn=min(I);lm=ma*(J);ln=min(J);%判断是否能向上移ifrn>1&isequalm(A(rn-1,[ln,lm]),[0,0])A(rn-1,[ln,lm])=[6,6];A(rn,[ln,lm])=[0,0];drawmap(A)end%判断是否能向下移ifrm<5&isequalm(A(rm+1,[ln,lm]),[0,0])A(rm+1,[ln,lm])=[6,6];A(rm,[ln,lm])=[0,0];drawmap(A)endifln>1&A(rn,ln-1)==0iflm<4&A(rm,lm+1)==0%如果又能左移又能右移,则要点击的部位ch=menu('请选择移到的方向:','左','右')switchchcase1%左移A(rm,ln-1)=6;A(rm,ln+1)=0;drawmap(A)case2%右移A(rm,lm+1)=6;A(rm,lm-1)=0;drawmap(A)endelse%只能左移A(rm,ln-1)=6;A(rm,ln+1)=0;drawmap(A)endelseiflm<4&A(rm,lm+1)==0A(rm,lm+1)=6;A(rm,lm-1)=0;drawmap(A)endcase7%小卒ifrow>1&A(row-1,col)==0%上ifcol>1&A(row,col-1)==0%左ch=menu('请选择移到的方向:','上','左')switchchcase1A(row-1,col)=7;A(row,col)=0;drawmap(A)case2A(row,col-1)=7;A(row,col)=0;drawmap(A)endelseifrow<5&A(row+1,col)==0%下ch=menu('请选择移到的方向:','上','下')switchchcase1A(row-1,col)=7;A(row,col)=0;drawmap(A)case2A(row+1,col)=7;A(row,col)=0;drawmap(A)endelseifcol<4&A(row,col+1)==0%右ch=menu('请选择移到的方向:','上','右')switchchcase1A(row-1,col)=7;A(row,col)=0;drawmap(A)case2A(row,col+1)=7;A(row,col)=0;drawmap(A)endelse%只能向上A(row-1,col)=7;A(row,col)=0;drawmap(A)endelseifcol>1&A(row,col-1)==0%左ifrow<5&A(row+1,col)==0%下ch=menu('请选择移到的方向:','左','下')switchchcase1A(row,col-1)=7;A(row,col)=0;drawmap(A)case2A(row+1,col)=7;A(row,col)=0;drawmap(A)endelseifcol<4&A(row,col+1)==0%右ch=menu('请选择移到的方向:','左','右')switchchcase1A(row,col-1)=7;A(row,col)=0;drawmap(A)case2A(row,col+1)=7;A(row,col)=0;drawmap(A)endelse%只能向左A(row,col-1)=7;A(row,col)=0;drawmap(A)endelseifrow<5&A(row+1,col)==0%下ifcol<4&A(row,col+1)==0%右ch=menu('请选择移到的方向:','下','右')switchchcase1A(row+1,col)=7;A(row,col)=0;drawmap(A)case2A(row,col+1)=7;A(row,col)=0;drawmap(A)endelse%只能向下A(row+1,col)=7;A(row,col)=0;drawmap(A)endelseifcol<4&A(row,col+1)==0%只能向右A(row,col+1)=7;A(row,col)=0;drawmap(A)endendendfunctiondrawmap(A)clfholdon%曹操[IJ]=find(A==1);*1=min(J)-1;*2=ma*(J);y1=5-(min(I)-1);y2=5-ma*(I);drawrect([*1,y1],[*2,y1],[*2,y2],[*1,y2],'r')te*t(0.5*(*1+*2)-0.5,0.5*(y1+y2),'曹操','fontsize',28)%黄忠[I,J]=find(A==2);*1=min(J)-1;*2=ma*(J);y1=5-(min(I)-1);y2=5-ma*(I);drawrect([*1,y1],[*2,y1],[*2,y2],[*1,y2],'y')te*t(0.5*(*1+*2)-0.26,0.5*(0.5*(y1+y2)+y1),'黄','fontsize',28)te*t(0.5*(*1+*2)-0.26,0.5*(0.5*(y1+y2)+y2),'忠','fontsize',28)%*飞[I,J]=find(A==3);*1=min(J)-1;*2=ma*(J);y1=5-(min(I)-1);y2=5-ma*(I);drawrect([*1,y1],[*2,y1],[*2,y2],[*1,y2],'y')te*t(0.5*(*1+*2)-0.26,0.5*(0.5*(y1+y2)+y1),'*','fontsize',28)te*t(0.5*(*1+*2)-0.26,0.5*(0.5*(y1+y2)+y2),'飞','fontsize',28)%马超[I,J]=find(A==4);*1=min(J)-1;*2=ma*(J);y1=5-(min(I)-1);y2=5-ma*(I);drawrect([*1,y1],[*2,y1],[*2,y2],[*1,y2],'y')te*t(0.5*(*1+*2)-0.26,0.5*(0.5*(y1+y2)+y1),'马','fontsize',28)te*t(0.5*(*1+*2)-0.26,0.5*(0.5*(y1+y2)+y2),'超','fontsize',28)%赵云[I,J]=find(A==5);*1=min(J)-1;*2=ma*(J);y1=5-(min(I)-1);y2=5-ma*(I);drawrect([*1,y1],[*2,y1],[*2,y2],[*1,y2],'y')te*t(0.5*(*1+*2)-0.26,0.5*(0.5*(y1+y2)+y1),'赵','fontsize',28)te*t(0.5*(*1+*2)-0.26,0.5*(0.5*(y1+y2)+y2),'云','fontsize',28)%关羽[I,J]=find(A==6);*1=min(J)-1;*2=ma*(J);y1=5-(min(I)-1);y2=5-ma*(I);drawrect([*1,y1],[*2,y1],[*2,y2],[*1,y2],'y')te*t(0.5*(*1+0.5*(*1+*2))-0.26,0.5*(y1+y2),'关','fontsize',28)te*t(0.5*(0.5*(*1+*2)+*2)-0.26,0.5*(y1+y2),'羽','fontsize',28)%小卒[I,J]=find(A==7);fori=1:length(I)*1=J(i)-1;*2=J(i);y1=5-(I(i)-1);y2=5-I(i);drawrect([*1,y1],[*2,y1],[*2,y2],[*1,y2],'g')te*t(0.5*(*1+*2)-0.26,0.5*(y1+y2),'卒','fontsize',28)end%画背景line([04],[00],'color','b','linewidth',4)line([04],[55],'color','b','linewidth',4)line([00],[05],'color','b','linewidth',4)line([44],[05],'color','b','linewidth',4)fori=1:4line([04],[ii],'color','b','linestyle','--')endfori=1:3line([ii],[05],'color','b','linestyle','--')enda*isequala*is([0405])a*isofffunctiondrawrect(*1,*2,*3,*4,color)*=[*1(1)*2(1)*3(1)*4(1)];y=[*1(2)*2(2)*3(2)*4(2)];fill(*,y,color)3.凑五子棋function[]=five()globalahm1n1m2n2th1h2h3colorscorehschasshf=figure('resize','off','name','five',...'position',[360280560420],'numbertitle','off');ha=a*es;set(gcf,'menubar','none','color',[0.30.30.3])set(gca,'position',[0.23000.11000.77500.8150])set(gca,'*lim',[0,9],'ylim',[0,9])set(ha,'*tick',[],'ytick',[],'bo*','on')set(ha,'color',[0.70.6,0.6])set(ha,'DataAspectRatio',[111],'PlotBo*AspectRatio',[111])*=repmat([0;9],1,9);y=[1:9;1:9];line(*,y,'color','k')line(y,*,'color','k')hst=uicontrol('style','te*t','string','Score','fontsize',30,...'units','normal','position',[0.02,0.55,0.26,0.14],'parent',hf,...'ForegroundColor','w','backgroundcolor',[0.30.30.3],...'fontweight','bold');hsc=uicontrol('style','te*t','string','0','fontsize',24,...'units','normal','position',[0.02,0.4,0.26,0.14],'parent',hf,...'ForegroundColor','w','backgroundcolor',[0.30.30.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=[...110;101;011;100;010;001;0.70.30;];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,'buttondownf',select2)initializefunctioninitialize()globalahm1n1m2n2th1h2h3colorscorehscssa=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;*=n-0.5;forp=1:5h(k(p))=line(*(p),y(p),'marker','o','markersize',24,...'markerfacecolor',color(t(p),:),'markeredgecolor','none',...'buttondownf',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);form=1:nt=ceil(rand*length(s));k(m)=s(t);s(t)=[];endfunctionselect1(src,eventdata)globalahm1n1n1=ceil(get(src,'*data'));m1=ceil(9-get(src,'ydata'));set(h(~isnan(h)),'markeredgecolor','none')set(src,'markeredgecolor','w')functionselect2(src,eventdata)globalahm1n1m2n2th1h2h3colorscorehschassifisempty(m1)||isempty(n1)returnendcp=get(src,'currentpoint');n2=ceil(cp(1,1));m2=ceil(9-cp(1,2));ifa(m2,n2)returnendb=~a;b(m1,n1)=1;b=bwlabel(b,4);ifb(m1,n1)~=b(m2,n2)returnenda(m2,n2)=a(m1,n1);a(m1,n1)=0;h(m2,n2)=h(m1,n1);h(m1,n1)=NaN;set(h(m2,n2),'*data',n2-0.5,'ydata',9.5-m2,'markeredgecolor','none')m1=[];n1=[];judgement;ifsum(sum(~a))<3hgo=te*t(1,4.5,'GameOver','fontsize',36,'fontweight',...'bold','parent',src);pause(3)delete(hgo);delete(h(~isnan(h)))set(hsc,'string','0')initialize;returnendif~ssnew;endfunctionjudgementglobalahm1n1m2n2th1h2h3colorscorehschassb=logical(zeros(9,9));ss=0;left=0;right=0;up=0;down=0;lu=0;rd=0;ld=0;ru=0;whilen2-left-1>0&&a(m2,n2-left-1)==a(m2,n2)left=left+1;endwhilen2+right+1<10&&a(m2,n2+right+1)==a(m2,n2)right=right+1;endwhilem2-up-1>0&&a(m2-up-1,n2)==a(m2,n2)up=up+1;endwhilem2+down+1<10&&a(m2+down+1,n2)==a(m2,n2)down=down+1;endwhilen2-lu-1>0&&m2-lu-1>0&&a(m2-lu-1,n2-lu-1)==a(m2,n2)lu=lu+1;endwhilen2+rd+1<10&&m2+rd+1<10&&a(m2+rd+1,n2+rd+1)==a(m2,n2)rd=rd+1;endwhilen2-ld-1>0&&m2+ld+1<10&&a(m2+ld+1,n2-ld-1)==a(m2,n2)ld=ld+1;endwhilen2+ru+1<10&&m2-ru-1>0&&a(m2-ru-1,n2+ru+1)==a(m2,n2)ru=ru+1;endifleft+right+1>=5b(m2,n2-left:n2+right)=1;endifup+down+1>=5b(m2-up:m2+down,n2)=1;endiflu+rd+1>=5ind=sub2ind([9,9],m2-lu:m2+rd,n2-lu:n2+rd);b(ind)=1;endifld+ru+1>=5ind=sub2ind([9,9],m2+ld:-1:m2-ru,n2-ld:n2+ru);b(ind)=1;endifsum(sum(b))a(b)=0;delete(h(b));h(b)=NaN;score=score+sum(sum(b));set(hsc,'string',num2str(score))ss=1;endfunctionnewglobalahm1n1m2n2th1h2h3colorscorehschak=rs(find(~a),3);a(k)=t;[mt,nt]=ind2sub([9,9],k);y=9.5-mt;*=nt-0.5;forp=1:3h(k(p))=line(*(p),y(p),'marker','o','markersize',24,...'markerfacecolor',color(t(p),:),'markeredgecolor','none',...'buttondownf',select1);endforp=1:3m2=mt(p);n2=nt(p);judgement;endifsum(sum(~a))==0hgo=te*t(1,4.5,'GameOver','fontsize',36,'fontweight',...'bold','parent',ha);pause(3)delete(hgo);delete(h(~isnan(h)))set(hsc,'string','0')initialize;returnendt=ceil(rand(1,3)*7);set(h1,'facecolor',color(t(1),:))set(h2,'facecolor',color(t(2),:))set(h3,'facecolor',color(t(3),:))functionrestart(src,eventdata)globalahm1n1m2n2th1h2h3colorscorehschassdelete(h(~isnan(h)))set(hsc,'string','0')initialize;4.2048functiong2048(action)globaltotalscoreflagscore_boardifnargin<1figure_h=figure;set(figure_h,'Units','points')set(figure_h,'UserData',figure_h);totalscore=0;flag=0;score_board=zeros(1,16);action='initialize';endswitchactioncase'initialize';figure_h=get(gcf,'UserData');set(figure_h,...'Color',[0.40.40.4],...'Menubar','none',...'Name','2048',...'NumberTitle','off',...'Position',[200200320355],...'Resize','off');a*is('off')game_score=uicontrol(figure_h,...'BackgroundColor',[111],...'ForegroundColor',[000],...'HorizontalAlignment','center',...'FontSize',12,...'Units','points',...'Position',[2353056530],...'String','Score',...'Style','edit',...'Tag','game_score');new_game_h=uicontrol(figure_h,...'Callback','g2048restart',...'FontSize',12,...'Units','points',...'Position',[35306530],...'String','NewGame',...'Style','pushbutton');%closeclose_h=uicontrol(figure_h,...'Callback','close(gcf)',...'Fontsize',12,...'Units','points',...'Position',[225306530],...'String','Close',...'Style','pushbutton');%rightmove_right=uicontrol(figure_h,...'Callback','g2048right',...'Fontsize',12,...'Units','points',...'Position',[2551856030],...'String','Right',...'Style','pushbutton');%leftmove_left=uicontrol(figure_h,...'Callback','g2048left',...'Fontsize',12,...'Units','points',...'Position',[51856030],...'String','Left',...'Style','pushbutton');%upmove_up=uicontrol(figure_h,...'Callback','g2048up',...'Fontsize',12,...'Units','points',...'Position',[1303006030],...'String','Up',...'Style','pushbutton');%downmove_down=uicontrol(figure_h,...'Callback','g2048down',...'Fontsize',12,...'Units','points',...'Position',[130806030],...'String','Down',...'Style','pushbutton');%setupthegameboardirows=1;forcounter=1:16jcols=rem(counter,4);ifjcols==0jcols=4;endposition=[40*jcols+4085+40*irows4040];inde*=(irows-1)*4+jcols;ifjcols==4irows=irows+1;endboard.squares(inde*)=uicontrol(figure_h,...'FontSize',18,...'FontWeight','bold',...'Units','points',...'Position',position,...'Style','pushbutton',...'Tag',num2str(inde*));endset(figure_h,'userdata',board);g2048('restart')case'restart'totalscore=0;score_board=zeros(1,16);g2048('addnum');g2048('addnum');g2048('show')case'show'num_0=find(score_board==0);board=get(gcf,'UserData');set(board.squares,{'string'},num2cell(score_board)')set(board.squares,...'BackgroundColor',[0.7019610.7019610.701961],...'Enable','on',...'Visible','on')set(board.squares(num_0),...'BackgroundColor','black',...'Enable','off',...'String','');score_handle=findobj(gcf,'Tag','game_score');set(score_handle,...'String',num2str(totalscore),...'Tag','game_score');case'down'C=score_board;fori=1:4A=[score_board(i)score_board(i+4)score_board(i+8)score_board(i+12)];[Bscore]=move(A);score_board(i)=B(1);score_board(i+4)=B(2);score_board(i+8)=B(3);score_board(i+12)=B(4);totalscore=totalscore+score;endifC==score_boardelseg2048('show');g2048('addnum');pause(0.2);g2048('show');endcase'up'C=score_board;fori=13:16A=[score_board(i)score_board(i-4)score_board(i-8)score_board(i-12)];[Bscore]=move(A);score_board(i)=B(1);score_board(i-4)=B(2);score_board(i-8)=B(3);score_board(i-12)=B(4);totalscore=totalscore+score;endifC==score_boardelseg2048('show');g2048('addnum');pause(0.2);g2048('show');endcase'right'C=score_board;fori=4:4:16A=[score_board(i)score_board(i-1)score_board(i-2)score_board(i-3)];[Bscore]=move(A);score_board(i)=B(1);score_board(i-1)=B(2);score_board(i-2)=B(3);score_board(i-3)=B(4);totalscore=totalscore+score;endifC==score_boardelseg2048('show');g2048('addnum');pause(0.2);g2048('show');endcase'left'C=score_board;fori=1:4:13A=[score_board(i)score_board(i+1)score_board(i+2)score_board(i+3)];[Bscore]=move(A);score_board(i)=B(1);score_board(i+1)=B(2);score_board(i+2)=B(3);score_board(i+3)=B(4);totalscore=totalscore+score;endifC==score_boardelseg2048('show');g2048('addnum');pause(0.2);g2048('show');endcase'addnum'num_0=find(score_board==0);l=length(num_0);ifl>0score_board(num_0(ceil(l*rand)))=2+2*(rand<0.1);endendendfunctionY=addnum(*)num_0=find(*==0);l=length(num_0);*(num_0(ceil(l*rand)))=2+2*(rand<0.1);Y=*;endfunction[Bscore]=move(A)score=0;fork=1:2fori=1:3ifA(i)==0forj=i:3A(j)=A(j+1);endA(4)=0;endendendifA(1)==A(2)ifA(3)==A(4)A(1)=A(1)+A(2);A(2)=A(3)+A(4);A(3)=0;A(4)=0;score=A(1)+A(2);elseA(1)=A(1)+A(2);A(2)=A(3);A(3)=A(4);A(4)=0;score=A(1);endelseifA(2)==A(3)A(1)=A(1);A(2)=A(2)+A(3);A(3)=A(4);A(4)=0;score=A(2);elseifA(3)==A(4)A(1)=A(1);A(2)=A(2);A(3)=A(3)+A(4);A(4)=0;score=A(3);elsescore=0;endendendB=A;End5.俄罗斯方块%各个函数请分开写ifnargin==0OldHandle=findobj('Type','figure','Tag','RussiaBlock');ifishandle(OldHandle)delete(OldHandle);endFigureHandle=figure('Name','俄罗斯方块MATLAB版','Tag','RussiaBlock','NumberTitle','off',...'Menubar','none','DoubleBuffer','on','Resize','off','visible','on',...'KeyPressF','RussiaBlock(''KeyPress_Callback'',gcbo)',...'HelpF','helpdlg(''帮不了你--!'',''不好意思'')',...'CloseRequestF','RussiaBlock(''CloseFigure_Callback'',gcbo)');generate_FigureContent(FigureHandle);init_FigureContent(FigureHandle);set(FigureHandle,'Visible','on');elseifischar(varargin{1})feval(varargin{:});end%functiongenerate_FigureContent(FigureHandle)TabSpace=30;BlockWidth=20;BlockHeight=20;FigureWidth=BlockWidth*(12+1)+TabSpace*7;FigureHeight=500;set(FigureHandle,'Position',[00FigureWidthFigureHeight]);movegui(FigureHandle,'center');%创立菜单BeginMenu=uimenu(FigureHandle,'Label','开场');StartMenu=uimenu(BeginMenu,'Label','开场新游戏','Accelerator','N',...'Callback','RussiaBlock(''StartNewGame_Callback'',gcbo)');SaveMenu=uimenu(BeginMenu,'Label','保存','Accelerator','S','Enable','off',...'Separator','on','Cal','RussiaBlock(''SaveGame_Callback'',gcbo)');LoadMenu=uimenu(BeginMenu,'Label','读取','Accelerator','L','Enable','off',...'Cal','RussiaBlock(''LoadGame_Callback'',gcbo)');QuitMenu=uimenu(BeginMenu,'Label','退出','Accelerator','Q','Separator','on','Cal','close(gcf)');OperationMenu=uimenu(FigureHandle,'Label','功能');BoardConfigMenu=uimenu(OperationMenu,'label','键盘设置','Enable','off',...'Cal','RussiaBlock(''BoardConfig_Callback'',gcbo)');FigureConfigMenu=uimenu(OperationMenu,'label','界面设置','Enable','off',...'Cal','RussiaBlock(''FigureConfig_Callback'',gcbo)');HighScoreMenu=uimenu(OperationMenu,'label','最高记录','Separator','on',...'Cal','RussiaBlock(''HighScore_Callback'',gcbo)','Enable','off');GameLevelMenu=uimenu(OperationMenu,'Label','游戏难度',...'Cal','RussiaBlock(''GameLevel_Callback'',gcbo)');HelpMenu=uimenu(FigureHandle,'Label','帮助');AboutMenu=uimenu(HelpMenu,'Label','关于此软件','Cal','helpdlg(''俄罗斯方块MATLAB版冰风漫天(制作)(2006/11/21)'',''关于此软件……'')');HelpDlgMenu=uimenu(HelpMenu,'Label','游戏帮助','Separator','on','Cal','helpdlg(''帮不了你--!'',''不好意思'')');%创立工具条,图标可以用imread从图片读取,但图片不要太大BeginTool=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国防锈汽轮机油行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国防晒用品行业市场深度调研及竞争格局与投资前景研究报告
- 2025-2030中国金融系统安防行业市场深度调研及竞争格局与投资前景研究报告
- 2025-2030中国酿造辅料行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国迷迭香行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国运动服装行业发展趋势与前景展望战略研究报告
- 2025-2030中国起重运输设备行业市场深度分析及发展趋势与投资研究报告
- 课程顾问年终工作总结
- 2025-2030中国西餐行业市场深度调研及竞争格局与投资研究报告
- 2025-2030中国血凝素5行业市场发展趋势与前景展望战略研究报告
- 世界文化遗产万里长城课件
- 2024年贵州高速公路集团有限公司招聘笔试参考题库含答案解析
- 急性脑卒中的早期识别和急诊处理
- 软件使用授权书
- 第四章社会医疗保险基金的测算
- 工程材料调差样表
- 机构与零件应用智慧树知到课后章节答案2023年下山东轻工职业学院
- 哈萨克斯坦劳动法中文版
- SHANLONG山龙 CA100-X雕刻机控制系统中文使用手册 V1.3
- 第十一章-玛莎·E·罗杰斯的整体人科学模式
- 森林管护措施及造林工作思考
评论
0/150
提交评论