欢迎来到天天文库
浏览记录
ID:8768958
大小:335.50 KB
页数:36页
时间:2018-04-07
《基于c#的五子棋游戏的设计与实现_毕业设计论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、郑州科技学院课程设计论文基于C#的五子棋游戏的设计与实现1 引言11.1 五子棋介绍12 软件架构23 五子棋设计说明23.1 主要成员变量说明23.2 回溯栈元素类——StackElement33.3 棋子点属性类——qzdianshuxing33.4 主要成员函数说明43.5 实现人机对弈的主要函数73.6 实现菜单功能的函数273.6 程序运行界面304 心得体会311 引言1.1 五子棋介绍五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“連珠”,英译为“Renju”,英文称之为“Gobang”或“
2、FIR”(FiveinaRow的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。人机对战人人对战主界面游戏控制游戏模式重新开始退出声音控
3、制悔棋开始2 软件架构软件的总体架构如图2.1:33图2.1软件架构3 五子棋设计说明3.1 主要成员变量说明1)选择游戏模式标志——m_renren用来表示当前玩家选择游戏的情况,当m_renren为false时,表示人机对战;为true时,表示人人对弈。2)游戏开始标志——begin用来判断当前游戏是否开始3)音效标志——sound在下棋过程中,判断是否需要声音,当sound为true时,表示玩家需要声音,否则的话,玩家不需要声音。4)谁先下的标志——first这个标志只对人机对弈时有效。当first为true时,表
4、示人先下,否则,电脑先下。5)棋盘数据——pointspoints为棋盘情况数组,是用一个15*15的二维数组来表示的。points[i,j]=2表示此处无子,points[i,j]=1表示此处为黑子points[i,j]=0表示此处为白子。6)棋子颜色标志——qzcolor用来表示当前棋子的颜色,qzcolor=1时表示黑棋,qzcolor=0时表示百棋。7)棋子数据——qz表示棋子所放的位子,是用一个15*15的PictureBox类型的二维数组来表示。它还可以用来显示当前棋子的图片。8)oldMovePoint用来
5、记录鼠标经过后点的位置。9)backStack用于悔棋的栈。10)backTrackStack33用于回溯的栈11)结局——result用枚举类型来表示结局。如:publicenumresult:int//结局{lose=-1,equal,win}3.2 回溯栈元素类——StackElement成员变量:1)qzColor棋子的颜色2)bestFivePoints最好点的位置3)pointsCount计算最好点的数目4)pointNumber点的数目5)Theresult结局6)stepNumber预测的步数3.3 棋子
6、点属性类——qzdianshuxing成员变量:1)blackConnect黑棋子i个(包括活棋)的连接条数2)blackActive黑活棋i个的连接条数3)whiteConnect白棋子i个(包括活棋)的连接条数4)whiteActive白活棋i个的连接条数5)tempActive3活棋数为3的连接条数3.4 主要成员函数说明1)初始化棋盘——Initializeqp初始化操作包括以下几个步骤:l设置棋子所在的位置l设置棋子的大小l初始化棋子的背景颜色l将棋子的sizemode设置为CenterImagel将棋子的可见
7、性设置为falsel将棋子添加到form上。2)绘制棋盘——Form1_Paint33其主要是画出以40*40的大小为每一小格,代码如下:for(i=0;i<15;i++){g.DrawLine(myPen,30+i*40,50,30+i*40,610);g.DrawLine(myPen,30,50+i*40,590,50+i*40);}1)绘制光标——Form1_MouseMove当鼠标在棋盘上移动时,当前的显示画红方框,过去的显示和背景一样颜色的方框。当前的红方框代码如下:if(108、
8、
此文档下载收益归作者所有