1、 五子棋游戏 项目设计汇报 汇报人: 学号: 日期: 5月25日 目 录 摘 要....................................................................................................3 一、 系统功效简述..............................................
2、4 (一)系统功效..............................................................................4 (二)开发环境..............................................................................4 (三)实用价值 4 二、 界面设计 5 (一)界面操作 5 (二)界面设计方案.......................................
3、6 三、 收获与体会................................................................................13 四、 参考文件....................................................................................14 摘 要 伴随经济发展, 社会竞争猛烈, 现在社会进入了竞争时代。上班族为了完成企业业务, 天天超负荷工作; 学生为了不落后她人天天早起晚睡
4、不停地学习,压力巨大。所以为了缓解大家压力, 使大家在工作、 学习之余娱乐一下, 活跃大脑, 提升工作、 学习效率, 所以益智性游戏越来越受大家关注, 五子棋作为益智类游戏之一, 倍受大家喜爱, 所以对于五子棋开发也有了很多关注。 本文关键讲是利用VC++6.0软件开发一个界面简练、 直观、 实用性比较高AI功效五子棋游戏, 游戏程序实现人机对弈, 在对弈过程中当用户和电脑比赛时电脑利用搜索算法计算出落子最好位置, 是先人机对弈, 而且程序能够完成含有重新开始游戏、 判定胜败、 判定落子等功效。 关键词:人工智能, 自动处理, 人机博弈, 五子棋
5、 一、 系统功效简述 (一)系统功效介绍 我们小组设计项目为五子棋小游戏。该设计系统功效比较简单, 共拥有些人人对战与人机对战功效模式。该游戏默认玩家1执白子先行, 棋子智能落在棋格交叉处, 白子黑子交替下落。所以。人机对战中也是默认由玩家执白子先行, 计算机执黑子后行。 (二)开发环境 该项目开发环境是VC++6.0, 使用这款开发软件我们努力争取做到界面简练、 直观、 实用性比较高。同时也是因为该软件我们比较熟悉, 比较轻易上手。 (三)实用价值 五子棋小游戏能作为同学老师业余时间放松之乐, 同时也让我们拥有了一次项目实际操作经验。该款
6、游戏AI 比较高, 需要我们经过较多思索才能将其打败。 二 界面设计 (一)界面操作 双击.exe文件进入游戏选择界面能够选择人人对战或人机对战或退出游戏。如图2.1所表示 图2.1 选择一个玩法后, 点确定后, 进入游戏界面, 便能够开始游戏。在想落子地方点击鼠标左键即可。如图2.2所表示 图2.2 点击游戏菜单还能够选择等级、 从新开始或退出, 如图2.3所表示: 图2.3 (二)界面设计方案 MFC窗口更适合小型游戏界面。五子棋能够说是再简单不过小游戏了, 不过其中确包含了大量
7、函数实现游戏正常运转。所以我们小组选择用MFC来做界面设计。当然理想与现实是有差距, 每件事计划时很轻易, 做起来会发觉有多种错误, 以致原来想做一个好看而且好用界面, 到最终只能努力争取简练直观。 若要游戏顺利进行, 则必需要有程序约束游戏规则。所以本游戏要处理以下这些问题: 棋子所放位置判定; 棋子颜色区分; 以及玩家输赢。处理了这些问题, 玩家便能够进行一场二人大战了。 棋子所放位置判定是在函数: void CWuziqitestView::OnLButtonDown(UINT nFlags, CPoint point) 中MFC自己显示point进行转化为数组中位置确定。
8、 棋子颜色区分: 用一个变量m_White来确定当她等于0是下白子, 不等于0时下黑子。 落子则能够用一个函数: void CWuziqitestView::DrawBlack(CDC *pDC, int i, int j)画出来。 完成了落子以后, 需要在最新落子上做个标识, 方便玩家寻求最新落子, 进行攻防转换。我们能够用这么一个函数: void CWuziqitestView::DrawMark(CDC *pDC, int x, int y) 画一个标识。不过需注意, 每下一个子后画一个标识, 并在下下一个子, 用上一个棋子将mark覆盖。 本游戏能够让两个玩家(或一个玩
9、家一个电脑)在标准五子棋盘上进行游戏, 最先连成五子者, 游戏能够显示哪一方获胜。 三 收获与体会 首先我对此次课程设计, 我认为这次关键便是人工智能算法研究, 发觉电脑不是我们想象当中那么好, 其实电脑是很笨, 当我们给了她一个很好算法以后, 她就变得很聪慧了, 而算法精髓在与数学和计算机完美结合, 一个好算法能够处理很多很大问题。算法世界很广, 一个优异程序员是不够, 要知道很多很好算法才能让我们代码更有价值。经过这门课学习能够愈加好地掌握算法设计与分析理论部分内容, 同时将理论利用于实践, 提升综合应用算法设计能力, 经过分析算法进而对算法进行优化。经过这一阶段训练, 使学生得到抽象
10、能力、 演绎推理能力、 综合概括能力提升。 对于此次课程设计, 我要感谢很多老师和同学, 在她们帮助我顺利完成了此次课程设计。首先是算法设计老师, 她讲课方法很不一样, 使得我每次上她课都格外认真。她总是给我们仔细讲解各个知识点, 然后给我们提供其她参考资料, 让我们下了课以后方便自己学习。还有就是我这次课程设计指导老师, 我们有什么问题直接找她, 她总是能够帮我们处理。还有就是我多个同学, 在编辑程序方便, 她们给了我很多帮助, 帮助我讲解很多程序编写格式。总而言之, 谢谢大家帮助。 四 参考文件 [1] 《VC++实用教程》, , 郑阿奇, 电子工业出版社 [2] 《计算机算法设计与分析》, , 王晓东, 电子工业出版社 [3] 《数据结构》, , 吴伟民, 清华大学出版社






