有趣的MATLAB1.游戲程序_第1頁
有趣的MATLAB1.游戲程序_第2頁
有趣的MATLAB1.游戲程序_第3頁
有趣的MATLAB1.游戲程序_第4頁
有趣的MATLAB1.游戲程序_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

-.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('曹操成功逃出華容道!如果要繼續(xù)玩,按“是〞,否則按“否〞','是','否');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%關(guān)羽[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)%關(guān)羽[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),'關(guān)','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%畫背景l(fā)ine([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.俄羅斯方塊%各個函數(shù)請分開寫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');%創(chuàng)立菜單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','鍵盤設(shè)置','Enable','off',...'Cal','RussiaBlock(''BoardConfig_Callback'',gcbo)');FigureConfigMenu=uimenu(OperationMenu,'label','界面設(shè)置','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','關(guān)于此軟件','Cal','helpdlg(''俄羅斯方塊MATLAB版冰風漫天(制作)(2006/11/21)'',''關(guān)于此軟件……'')');HelpDlgMenu=uimenu(HelpMenu,'Label','游戲幫助','Separator','on','Cal','helpdlg(''幫不了你--!'',''不好意思'')');%創(chuàng)立工具條,圖標可以用imread從圖片讀取,但圖片不要太大BeginTool=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論