当前位置:
文档之家› 传统五子棋游戏的设计_课程设计报告
传统五子棋游戏的设计_课程设计报告
1.2 游戏设计意义
本次五子棋游戏设计是为了检验自己对于 C#编程语言的了解深度。从简单的游戏程序 入手,独自进行一个小软件程序的开发,让各个运行模块的环环相扣,这不仅对自己的编程 能力有了颇具意义的提升,也对今后软件开发有了更实际的认识,增长了相关的工作经验。 这也算是步入工作岗位后对自己的一次重要试炼。
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 当鼠标在棋盘上移动时,当前的显示画红方框,过去的显示和背景一样颜色的方框。 当前的红方框代码如下:
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 +
过去的方框代码如下:
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 -
学号 1608220203
2016-2017 学年 第一学期
《Windows 程序设计》
课程设计报告
题 目 : 传统五子棋游戏的设计 专业: 班级: 姓名: 指导教师: 成绩:
学院 二 0 一六年十月十五日
目录
1 引言.......................................................................................................1 1.1 五子棋介绍 ...................................................................................1 1.2 游戏设计意义 ...............................................................................1
2
表示棋子所放的位子,是用一个 15*15 的 PictureBox 类型的二维数组来表示。它还可以用来 显示当前棋子的图片。 8)ldMovePoint 用来记录鼠标经过后点的位置。 9)backStack 用于悔棋的栈。 10)backTrackStack
用于回溯的栈 11)结局——result
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
黑棋子 i 个(包括活棋)的连接条数 黑活棋 i 个的连接条数 白棋子 i 个(包括活棋)的连接条数 白活棋 i 个的连接条数 活棋数为 3 的连接条数
3 模块调试
3.1 主要成员函数
1) 初始化棋盘——Initializeqp 初始化操作包括以下几个步骤:
3
设置棋子所在的位置 设置棋子的大小 初始化棋子的背景颜色 将棋子的 sizemode 设置为 CenterImage 将棋子的可见性设置为 false 将棋子添加到 form 上。 2) 绘制棋盘——Form1_Paint 其主要是画出以 40*40 的大小为每一小格,代码如下:
用枚举类型来表示结局。如:
public enum result : int//结局
{
lose = -1,
equal,
win
}
2.4.2 回溯栈元素类——StackElБайду номын сангаасment
成员变量:
1) qzColor
棋子的颜色
2) bestFivePoints 最好点的位置
3) pointsCount 计算最好点的数目
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; }
2.3 软件架构
根据设计的需求在系统中添加如下设计框架,如图设计框架总括。其中包括 总页面,游戏控制和游戏模式,设计能达到对于本游戏的基本的操作包括重新开
1
始,悔棋,声音控制,声音控制,推出等,游戏模式包括人人对话和人机对话。 如图:
主界面
游戏控制
游戏模式
重
悔
声
退开
人
人
新
棋
音
出始
人
机
开
控
对
对
始
制
战
2 设计部分
2.1 设计目的
1、 利用.net 语言及 vs 软件实现传统五子棋游戏的再现; 2、 实现先、后手,悔棋,换方的经典功能,可以进行人机,人人对战; 3、 增加游戏音效,并可开启与关闭; 4、 主要采用 windows 窗体的主界面使游戏较为美观。
2.2 设计要求
1、用鼠标点击的方式在棋盘上摆放棋子 2、玩家以决定谁执黑子,黑子先落子,黑白子交替,无论是水平方向、竖直方向还是 对角线方向都可以,任意一方将五子连在一起的时候判为胜利,棋盘满为和棋,对方实 现胜利条件则自己判负。 3、可以悔棋、设置音效、对换双方棋子 4、界面友好、漂亮。
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