<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
效果:
注: 由於用uifigure和uiaxes寫的會比較慢,改成常規的axes和figure會快很多。
完整程式碼:
function OX_chess fig=uifigure('units','pixels',... 'position',[350 100 500 500],... 'Numbertitle','off',... 'name','OX_chess',... 'Color',[1 1 1],... 'resize','off',... 'menubar','none'); ax=uiaxes('Units','pixels',... 'parent',fig,... 'Color',[0.9106 0.9773 1],... 'Position',[-22 -20 540 540],... 'XLim',[0-20 400+20],... 'YLim',[0-20 400+20],... 'XColor',[0.8706 0.9373 0.9686],... 'YColor',[0.8706 0.9373 0.9686]); ax.Toolbar.Visible='off'; hold(ax,'on') drawCheckerboard() %========================================================================== set(fig,'WindowButtonDownFcn',@buttondown) function buttondown(~,~) xy=get(ax,'CurrentPoint'); xp=xy(1,2);yp=xy(1,1); Pos=[xp,yp]; Pos=round((Pos-50)./150)+1; if map(Pos(2),Pos(1))==0 switch turn case 1,drawO(Pos(2),Pos(1)),turn=-1;map(Pos(2),Pos(1))=1; case -1,drawX(Pos(2),Pos(1)),turn=1;map(Pos(2),Pos(1))=-1; end end judge(); end function judge(~,~) judge1=sum(map,1); judge2=sum(map,2); judge3=sum(map(eye(3)==1)); judge4=sum(map([3,5,7])); winner=[]; switch 1 case any(judge1==3)||any(judge2==3)||judge3==3||judge4==3,winner='甜甜圈'; case any(judge1==-3)||any(judge2==-3)||judge3==-3||judge4==-3,winner='手指餅乾'; end if ~isempty(winner) buttonName1=uiconfirm(fig,[winner,'獲得勝利'],[winner,'獲得勝利'],'Options',{'關閉','重新開始'},'Icon','success'); if isempty(buttonName1),buttonName1='end';end if strcmp(buttonName1,'重新開始'),restart(); elseif strcmp(buttonName1,'關閉');delete(fig); end end end function restart(~,~) turn=1; map=zeros(3,3); delete(findobj(ax,'type','patch')) delete(findobj(ax,'type','line')) delete(findobj(ax,'type','scatter')) drawCheckerboard() end turn=1; map=zeros(3,3); %========================================================================== function drawX(i,j) x=50+150*(i-1); y=50+150*(j-1); Xb=[-55:1:+55,+55:-1:-55]; Xs=[-50:1:+50,+50:-1:-50]; Yb=[(-15).*ones(1,length(Xb)/2),(+15).*ones(1,length(Xb)/2)]; Ys=[(-12).*ones(1,length(Xs)/2),(+12).*ones(1,length(Xs)/2)]; Xsin=-48:0.1:48; Ysin=sin(Xsin./2).*5; Xp=-47:15:45; Yp=0.*ones(size(Xp)); theta=pi/6; fill(ax,x+Xb.*cos(theta)-Yb.*sin(theta),y+Yb.*cos(theta)+Xb.*sin(theta),[1.0000 0.9216 0.6588]); fill(ax,x+Xs.*cos(theta)-Ys.*sin(theta),y+Ys.*cos(theta)+Xs.*sin(theta),[0.6627 0.6431 0.2745],'EdgeColor','none'); plot(ax,x+Xsin.*cos(theta)-Ysin.*sin(theta),y+Ysin.*cos(theta)+Xsin.*sin(theta),'LineWidth',2,'Color',[0.9451 0.9843 0.8471]) scatter(ax,x+Xp.*cos(theta)-Yp.*sin(theta),y+Yp.*cos(theta)+Xp.*sin(theta),10,'filled','CData',[0.9216 0.4000 0.3725]) theta=3*pi/6; fill(ax,x+Xb.*cos(theta)-Yb.*sin(theta),y+Yb.*cos(theta)+Xb.*sin(theta),[1.0000 0.9216 0.6588]); fill(ax,x+Xs.*cos(theta)-Ys.*sin(theta),y+Ys.*cos(theta)+Xs.*sin(theta),[0.6627 0.6431 0.2745],'EdgeColor','none'); plot(ax,x+Xsin.*cos(theta)-Ysin.*sin(theta),y+Ysin.*cos(theta)+Xsin.*sin(theta),'LineWidth',2,'Color',[0.9451 0.9843 0.8471]) scatter(ax,x+Xp.*cos(theta)-Yp.*sin(theta),y+Yp.*cos(theta)+Xp.*sin(theta),10,'filled','CData',[0.9216 0.4000 0.3725]) end function drawO(i,j) x=50+150*(i-1); y=50+150*(j-1); R=55; t=0:0.01:2*pi; XR=x+cos(t).*R; YR=y+sin(t).*R; Xr=x+cos(t).*R.*0.4; Yr=y+sin(t).*R.*0.4; fill(ax,[XR,Xr],[YR,Yr],[0.90 0.73 0.45],'EdgeColor',[0.67 0.42 0.15],'LineWidth',1) [t,rL,RL]=createRandomLine_O(R); T=[t,t(end:-1:1)]; Rr=[RL,rL]; X=x+cos(T).*Rr; Y=y+sin(T).*Rr; fill(ax,X,Y,[0.33 0.18 0.12],'EdgeColor','none') candiColor=[ 0.9765 0.8353 0.4902 0.9647 0.9647 0.8314 0.1490 0.4235 0.6980 0.2431 0.4510 0.3490 0.9490 0.9647 0.9686 0.7647 0.1059 0.1569 0.2784 0.1843 0.5216 0.8824 0.6471 0.7490]; for i=1:35 t1=rand(1)*2*pi; t2=rand(1)*2*pi; r1=(R*0.6-5).*rand(1)+R*0.4; x1=x+cos(t1)*r1; y1=y+sin(t1)*r1; x2=x1+cos(t2)*7; y2=y1+sin(t2)*7; plot(ax,[x1,x2],[y1,y2],'Color',candiColor(randi(size(candiColor,1)),:),'LineWidth',2); end end function [t,r,R]=createRandomLine_O(RR) t=0:0.2:2*pi; R=(RR-3)+5.*rand(size(t)); R=interp1(t,R,0:0.01:2*pi,'spline'); r=(RR*0.4+7)-6.*rand(size(t)); r=interp1(t,r,0:0.01:2*pi,'spline'); t=0:0.01:2*pi; end function drawCheckerboard [Xq,Yq]=createRandomLine_CB(440,10,5,26); fill(ax,Xq-20,Yq+112,[0.96 0.80 0.52],'EdgeColor',[0.45 0.11 0.05].*0.8,'LineWidth',1) [Xq,Yq]=createRandomLine_CB(440,10,5,26); fill(ax,Xq-20,Yq+262,[0.96 0.80 0.52],'EdgeColor',[0.45 0.11 0.05].*0.8,'LineWidth',1) [Xq,Yq]=createRandomLine_CB(440,10,5,26); fill(ax,Yq+112,Xq-20,[0.96 0.80 0.52],'EdgeColor',[0.45 0.11 0.05].*0.8,'LineWidth',1) [Xq,Yq]=createRandomLine_CB(440,10,5,26); fill(ax,Yq+262,Xq-20,[0.96 0.80 0.52],'EdgeColor',[0.45 0.11 0.05].*0.8,'LineWidth',1) [Xq,Yq]=createRandomLine_CB(440,10,2,10); fill(ax,Xq-20,Yq+120,[0.97 0.91 0.65],'EdgeColor',[0.5,0.3 0.3],'LineWidth',1) [Xq,Yq]=createRandomLine_CB(440,10,2,10); fill(ax,Xq-20,Yq+270,[0.97 0.91 0.65],'EdgeColor',[0.5,0.3 0.3],'LineWidth',1) [Xq,Yq]=createRandomLine_CB(440,10,5,10); fill(ax,Yq+120,Xq-20,[0.97 0.91 0.65],'EdgeColor',[0.5,0.3 0.3],'LineWidth',1) [Xq,Yq]=createRandomLine_CB(440,10,5,10); fill(ax,Yq+270,Xq-20,[0.97 0.91 0.65],'EdgeColor',[0.5,0.3 0.3],'LineWidth',1) end function [Xq,Yq]=createRandomLine_CB(Lim,N,randMax,h) X1=linspace(0,Lim,N); X2=X1(end:-1:1); Y1=-randMax.*rand(size(X1)); Y2=randMax.*rand(size(X2)); Xq1=0:0.1:Lim; Yq1=interp1(X1,Y1,Xq1,'spline'); Xq2=Lim:-0.1:0; Yq2=interp1(X2,Y2,Xq2,'spline')+h; Xq=[Xq1,Xq2]; Yq=[Yq1,Yq2]; end end
到此這篇關於利用Matlab製作三子棋遊戲的範例程式碼的文章就介紹到這了,更多相關Matlab三子棋遊戲內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45