传统五子棋游戏的设计_课程设计报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
战
图 1 设计框架总括
2.4 五子棋设计说明
2.4.1 主要成员变量
1)选择游戏模式标志——m_renren 用来表示当前玩家选择游戏的情况,当 m_renren 为 false 时,表示人机对战;为 true 时, 表示人人对弈。 2)游戏开始标志——begin 用来判断当前游戏是否开始 3)音效标志——sound 在下棋过程中,判断是否需要声音,当 sound 为 true 时,表示玩家需要声音,否则的话, 玩家不需要声音。 4)谁先下的标志——first 这个标志只对人机对弈时有效。当 first 为 true 时,表示人先下,否则,电脑先下。 5)棋盘数据——points points 为棋盘情况数组,是用一个 15*15 的二维数组来表示的。points[i,j]=2 表示此处无子, points[i,j]=1 表示此处为黑子 points[i,j]=0 表示此处为白子。 6)棋子颜色标志——qzcolor 用来表示当前棋子的颜色,qzcolor=1 时表示黑棋,qzcolor=0 时表示百棋。 7)棋子数据——qz
if (10 < e.X && 10< e.Y &&e.X <ClientRectangle.Width && e.Y <ClientRectangle.Height) { x = ((e.X - 10) / 40) * 40 + 30; y = ((e.Y - 10) / 40) * 40 + 50; g.DrawLine(newpen, x - 15, y - 15, x - 15, y - 5); g.DrawLine(newpen, x - 15, y - 15, x - 5, y - 15); g.DrawLine(newpen, x + 15, y - 15, x + 5, y - 15); g.DrawLine(newpen, x + 15, y - 15, x + 15, y -5); g.DrawLine(newpen, x - 15, y + 15, x - 15, y + 5); g.DrawLine(newpen, x - 15, y + 15, x - 5, y + 15); g.DrawLine(newpen, x + 15, y + 15, x + 15, y + 5); g.DrawLine(newpen, x + 15, y + 15, x + 5, y + 15); oldMovePoint.X = x; oldMovePoint.Y = y; }
5, oldMovePoint.Y - 15); g.DrawLine(oldpen, oldMovePoint.X + 15, oldMovePoint.Y - 15, oldMovePoint.X +
5, oldMovePoint.Y - 15); g.DrawLine(oldpen, oldMovePoint.X + 15, oldMovePoint.Y - 15, oldMovePoint.X +
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); }
3) 绘制光标——Form1_MouseMove 当鼠标在棋盘上移动时,当前的显示画红方框,过去的显示和背景一样颜色的方框。 当前的红方框代码如下:
2.3 软件架构
根据设计的需求在系统中添加如下设计框架,如图设计框架总括。其中包括 总页面,游戏控制和游戏模式,设计能达到对于本游戏的基本的操作包括重新开
1
始,悔棋,声音控制,声音控制,推出等,游戏模式包括人人对话和人机对话。 如图:
主界面
游戏控制
游戏模式
重
悔
声
退开
人
人
新
棋
音Leabharlann Baidu
出始
人
机
开
控
对
对
始
制
战
黑棋子 i 个(包括活棋)的连接条数 黑活棋 i 个的连接条数 白棋子 i 个(包括活棋)的连接条数 白活棋 i 个的连接条数 活棋数为 3 的连接条数
3 模块调试
3.1 主要成员函数
1) 初始化棋盘——Initializeqp 初始化操作包括以下几个步骤:
3
设置棋子所在的位置 设置棋子的大小 初始化棋子的背景颜色 将棋子的 sizemode 设置为 CenterImage 将棋子的可见性设置为 false 将棋子添加到 form 上。 2) 绘制棋盘——Form1_Paint 其主要是画出以 40*40 的大小为每一小格,代码如下:
过去的方框代码如下:
if (oldMovePoint.X != -1) {g.DrawLine(oldpen, oldMovePoint.X - 15, oldMovePoint.Y - 15, oldMovePoint.X - 15,
oldMovePoint.Y - 5); g.DrawLine(oldpen, oldMovePoint.X - 15, oldMovePoint.Y - 15, oldMovePoint.X -
3 游戏模块的实现与调试 ........................................................................3 3.1 主要成员函数 ...............................................................................3 3.2 以下函数是实现人机对弈的主要函数: ....................... 6 3.3 输赢的判断...................................................... 13 3.4 以下是实现菜单功能的函数: ..............................................13 3.5 实现工具栏上的功能函数 ........................................................17
2 设计部分
2.1 设计目的
1、 利用.net 语言及 vs 软件实现传统五子棋游戏的再现; 2、 实现先、后手,悔棋,换方的经典功能,可以进行人机,人人对战; 3、 增加游戏音效,并可开启与关闭; 4、 主要采用 windows 窗体的主界面使游戏较为美观。
2.2 设计要求
1、用鼠标点击的方式在棋盘上摆放棋子 2、玩家以决定谁执黑子,黑子先落子,黑白子交替,无论是水平方向、竖直方向还是 对角线方向都可以,任意一方将五子连在一起的时候判为胜利,棋盘满为和棋,对方实 现胜利条件则自己判负。 3、可以悔棋、设置音效、对换双方棋子 4、界面友好、漂亮。
2
表示棋子所放的位子,是用一个 15*15 的 PictureBox 类型的二维数组来表示。它还可以用来 显示当前棋子的图片。 8)ldMovePoint 用来记录鼠标经过后点的位置。 9)backStack 用于悔棋的栈。 10)backTrackStack
用于回溯的栈 11)结局——result
1
1 引言
1.1 五子棋介绍
五子棋是起源于中国古代的传统黑白棋种之一。它不仅能增强思维能力,提高智力,而 且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典 哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥 的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有 “场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。
4 总结: ..................................................................................................22 5 参考文献: ..........................................................................................23
用枚举类型来表示结局。如:
public enum result : int//结局
{
lose = -1,
equal,
win
}
2.4.2 回溯栈元素类——StackElement
成员变量:
1) qzColor
棋子的颜色
2) bestFivePoints 最好点的位置
3) pointsCount 计算最好点的数目
1.2 游戏设计意义
本次五子棋游戏设计是为了检验自己对于 C#编程语言的了解深度。从简单的游戏程序 入手,独自进行一个小软件程序的开发,让各个运行模块的环环相扣,这不仅对自己的编程 能力有了颇具意义的提升,也对今后软件开发有了更实际的认识,增长了相关的工作经验。 这也算是步入工作岗位后对自己的一次重要试炼。
15, oldMovePoint.Y - 5); g.DrawLine(oldpen, oldMovePoint.X - 15, oldMovePoint.Y + 15, oldMovePoint.X -
2 游戏设计部分 ......................................................................................1 2.1 设计目的 ......................................................................................1 2.2 需求分析 ......................................................................................1 2.3 软件架构 ....................................................................................1 2.4 五子棋设计说明 ........................................................................2 2.4.1 主要成员变量 ..................................................................2 2.4.2 回溯栈元素类——StackElement .......................................3 2.4.3 棋子点属性类——qzdianshuxing......................................3
学号 1608220203
2016-2017 学年 第一学期
《Windows 程序设计》
课程设计报告
题 目 : 传统五子棋游戏的设计 专业: 班级: 姓名: 指导教师: 成绩:
学院 二 0 一六年十月十五日
目录
1 引言.......................................................................................................1 1.1 五子棋介绍 ...................................................................................1 1.2 游戏设计意义 ...............................................................................1
4)pointNumber 点的数目
5)theresult
结局
6)stepNumber 预测的步数
2.4.3 棋子点属性类——qzdianshuxing
成员变量: 1)blackConnect 2)blackActive 3)whiteConnect 4)whiteActive 5)tempActive3