预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共40页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
C++面向对象课程设计PAGE39青岛理工大学C++面向对象课程设计报告院(系):_________专业:__学生姓名:___班级:学号:题目:_________起讫日期:__________设计地点:_______指导老师:____一.游戏概述...........................................31.1.游戏介绍.........................................31.2.游戏玩法.........................................31.3.运行环境.........................................3具体步骤........................................32.1.棋盘设计.........................................32.2.棋子设计.........................................42.3.电脑算法.........................................62.4.胜负判断.........................................8游戏运行图......................................11总结............................................1341.自我总结..........................................134.2.程序的不足和需要改进的地方.......................14致谢...............................................14附录一参考文献....................................15附录二程序源代码..................................15游戏概述1.1.游戏介绍五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统黑白棋种之一。发展于日本,流行于欧美。容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。1.2.游戏玩法黑白双方依次落子,由黑先下,当棋盘上有三个子时,如果此时白方觉得开的局不利于自已可以提出交换,黑方无条件接受!也可以不交换,主动权在白方!然后继续下棋,任一方先在棋盘上形成横向、竖向、斜向的连续的相同颜色的五个棋子的一方为胜。1.3.运行环境Windows7VC++6.0具体步骤2.1.棋盘设计棋盘和棋子可以用GDI来实现,棋盘用GDI划线,基本上就是LineTo(x,y),MoveTo(x,y),一个棋盘就出来了。具体代码如下在OnPaint()函数的else内加入如下代码CPaintDCdc(this);dc.SelectStockObject(BLACK_PEN);inti,j;for(i=40;i<=530;i=i+35){dc.MoveTo(i,40);dc.LineTo(i,530);}for(j=40;j<=530;j=j+35){dc.MoveTo(40,j);dc.LineTo(530,j);}}2.2.棋子设计至于如何画棋子,就用GDI来画圆,然后填充上不同的颜色,黑子、白子也就实现了。这里的棋子不应该是一个独立的量,它有自己的区域,应该能判断鼠标是不是点击到了这个区域,当点击这个区域的时候是否应该显示,应该显示什么颜色的旗子……把这么多东西集合在一起,应该定义一个类,于是Cqiz这个类就出现了。Cqiz有四个变量如下:intflag;CRectrect;inty;intx;x,y表示这个区域的中心,rect为以x,y为中心的边长为30的矩形,flag用来表示该对象的状态(0:空白1:黑子-1:白字)。然后又定义了5个成员函数boolisWhite();//如果为白子,返回trueCRectgetRect();//获得该对象对应的CRectboolisBlack();//如果为黑子,返回trueboolisEmpty();//如果为空,返回trueboolisOn(CPointpoint);//如果该点出在该区域返回true,用来判断鼠标单击对应的区域。定义了一个vecto