matlab编程(五子棋)

matlab编程(五子棋)

ID:14515433

大小:59.50 KB

页数:5页

时间:2018-07-29

matlab编程(五子棋)_第1页
matlab编程(五子棋)_第2页
matlab编程(五子棋)_第3页
matlab编程(五子棋)_第4页
matlab编程(五子棋)_第5页
资源描述:

《matlab编程(五子棋)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、functionfive()M文件的一种类型,以function开启的函数文件,另一种是把一系列命令结合在一起的一般M文件figure(1)创建一个新的图形对象axis([012012]);坐标轴范围控制命令,axis([xminxmaxyminymax])用于设置图表各坐标轴的刻度范围holdon图形保持功能,当前坐标轴和图形都将保持,此后绘制的图形都将添加在这个图形之上,并且自动调整坐标轴的范围axisoff取消坐标轴背景,在运行的图中不显示坐标fori=1:11a:b:c第一个为起始值,第二个为增量(增量为1,冒号省略),第三个为结

2、束值line([111],[ii]);画网格line([1,2],[3,4])将画出(1,3)到(2,4)的一条直线line([ii],[111]);endaxisequal横纵坐标使用相同的刻度(使每一个格子成为正方形)qishou=1;判断棋手的颜色,开始的时候是红色,取0时是黑色boardstatus=zeros(10);棋盘状态gt矩阵,取0为空,取1为黑,取2为红zeros(10)将画出10*10的零阵,代表棋盘上的100个位置while1holdonposflag=1;用于判断下的棋是否有效,取1说明下的棋无效,要重新下whi

3、leposflag[xpos,ypos]=ginput(1);能从当前的坐标中读取n个点并返回这n个点的x,y坐标,均为nx1向量,程序运行时,在界面鼠标会以一个十字线移动,便是ginput(x)的功能xpos=0.5*(floor(xpos)+ceil(xpos));x,y为圆心,floor(x)地板函数,即舍去正小数至最近整数ypos=0.5*(floor(ypos)+ceil(ypos));ceil(x)天花板函数,即加入正小数至最近整数,例如x=9.5,floo(x)=9,ceil(x)=10ifxpos<=0.5

4、

5、xpos>=

6、11

7、

8、ypos<=0.5

9、

10、ypos>=11点到棋盘外了,回到上面的循环continueendforn=1:10判断棋子是否下到边界,若在边线上,判断无效,继续ifxpos==n

11、

12、ypos==ncontinueendrx=floor(xpos);boardstatus是10*10零阵从1*1开始,所以用floor函数ry=floor(ypos);ifboardstatus(rx,ry)==1

13、

14、boardstatus(rx,ry)==2该位置已经有棋子continue;回到上面的循环endposflag=0;跳出循环endifqish

15、ou==1drawthego(xpos,ypos,qishou);boardstatus(rx,ry)=1;此空为红棋qishou=0;轮到黑棋下elsedrawthego(xpos,ypos,qishou);boardstatus(rx,ry)=2;此空位黑棋qishou=1;轮到红棋下endifiswin(boardstatus,rx,ry)==1ifqishou==1winmsg='黑棋连成了五颗,黑棋胜!';elsewinmsg='红棋连成了五颗,红棋胜!';endifiswin(boardstatus,rx,ry)==2winm

16、sg='和棋';msgbox(winmsg)msgbox(Message)创建一个对话框,根据figure窗体大小自动将Message换行。Message可以是一个字符串向量、字符串矩阵或者元胞数组,弹出赢家是红方或黑方的或和棋的对话框returnendaxis([012012]);坐标轴范围控制命令,axis([xminxmaxyminymax])用于设置图表各坐标轴的刻度范围axisequal横纵坐标使用相同的刻度(使每个格子是正方形)endfigure(1)创建一个新的图形对象axis([010010]);坐标轴范围控制命令,axi

17、s([xminxmaxyminymax])用于设置图表各坐标轴的刻度范围axisequal横纵坐标使用相同的刻度(使每个格子为正方形)【上三行为无效语句在程序中无作用】functiondrawthego(x,y,flag)在(x,y)处画一个棋子flag取1时画红棋flag取0时画黑棋t=0:pi/100:2*pi;画最外面一层的圆周,x,y是圆心0.5为半径,其中增量只要足够小就行不必非取pi/100,若想要画到格子的点上,只需将圆心移到格点坐标rx=x+0.5*cos(t);ry=y+0.5*sin(t);ifflag==1fill(

18、rx,ry,'r');fill([x1,x2,x3,x4],[y1,y2,y3,y4],'k')[x1,x2,x3,x4],[y1,y2,y3,y4]区域内的颜色填充为黑色,'k'表示黑色r是

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。