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

下載本文檔

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

文檔簡介

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)% 關(guān)羽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),關(guān),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% 畫背景l(fā)ine(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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論