- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
“C++程序设计与训练”课程大作业
项目报告
项目名称:五子贪吃蛇棋
姓名: 林子坤
学号:2014011541
班级: 自45
日期: 2015/09/20
目 录
TOC \o 1-3 \h \z \u HYPERLINK \l _Toc364862629 1系统功能设计 PAGEREF _Toc364862629 \h 3
HYPERLINK \l _Toc364862630 2系统总体结构 PAGEREF _Toc364862630 \h 3
HYPERLINK \l _Toc364862631 3本人工作内容 PAGEREF _Toc364862631 \h 3
HYPERLINK \l _Toc364862632 4项目总结 PAGEREF _Toc364862632 \h 3
HYPERLINK \l _Toc364862633 5相关问题的说明 PAGEREF _Toc364862633 \h 4
1系统功能设计
这是进行复杂软件开发的第一步,即需求分析。此部分需要详细描述清楚系统将要实现的功能。
(此部分的子标题和结构自行拟定。此部分内容同一小组可以共用。)
1.1总体功能描述
1、概述
众所周知,五子棋和贪吃蛇都是在各种电子设备上的经典游戏,堪称电子游戏之鼻祖。五子棋考验人们的理性思维,在安静的思考中获得获胜的思路;而贪吃蛇考验人们的观察力和敏捷度,在速度的决斗中增加自己的长度。而我们这个项目将两款游戏融合起来,成为一个动静结合的新型游戏。
2、项目具体功能
本游戏采取两种切换策略,两种策略共享同样的五子棋代码。
第一种切换策略中,五子棋和贪吃蛇采取无限循环的简单模式。在每一轮中,玩家需先作为黑棋方完成一局五子棋游戏,若任意一局五子棋失败,则整个游戏以失败计,弹出窗口显示失败信息。若该局五子棋获胜,则弹出窗口显示胜利信息,并且棋盘变为贪吃蛇的跑道,初始化蛇头(黄色)、蛇身(绿色),并随机出现食物(红色)且上局中的白棋(电脑方)作为贪吃蛇的障碍物,贪吃蛇碰到自身、墙壁与障碍物,游戏均以失败计,弹出窗口显示失败信息。因此,五子棋的通关速度也会影响到最终的结果,因为随着五子棋获胜步数增加,贪吃蛇游戏中障碍物数量也会相应增加。如果贪吃蛇成功吃到食物,则本局游戏获胜,弹出窗口显示胜利信息,并且界面恢复为五子棋的棋盘,进行下一局的五子棋的游戏。
第二种切换策略中,五子棋和贪吃蛇采取单局计分的多窗口信息传递模式。在每一轮中,玩家需先作为黑棋方完成一局五子棋游戏,若任意一局五子棋失败,则整个游戏以失败计,弹出窗口显示失败信息。若该局五子棋获胜,则弹出窗口显示胜利信息,并且弹出贪吃蛇游戏窗口,并把上局中的白棋(电脑方)坐标传入贪吃蛇游戏的跑道上,作为贪吃蛇的障碍物。因此,五子棋的通关速度也会影响到最终的结果,因为随着五子棋获胜步数增加,贪吃蛇游戏中障碍物数量也会相应增加。吃到一个食物则记录分数。由于没有分数上限,所以当贪吃蛇长度过长时,玩家游戏失败,直接结束游戏。
1.2功能点说明
(本部分是大作业考核和评分的主要依据)
大作业功能点说明(示例)
功能类型
功能点名称
实现方式
自己编写C++代码
使用C++标准库
使用第三方库
使用SQL语句
功能点描述
基本信息处理
1.产生随机数
自己编写C++代码
使用C++标准库
产生随机数,提供给五子棋“随机下棋“模式中落子坐标及贪吃蛇食物的随机生成
2.读取玩家的所下五子棋的位置
自己编写C++代码
使用C++标准库
通过鼠标点击信息获取,读取玩家所下五子棋的位置并将其显示在界面上
3.计算机智能下棋
自己编写C++代码
使用C++标准库
五子棋的实现核心,通过对多种情况的考虑分析让计算机对人的下棋情况进行分析并进行堵、攻等算法实现
4.五子棋的获胜判定
自己编写C++代码
使用C++标准库
五子棋的实现关键,通过对人方最后落子附近的扫描与全棋盘的扫描判断五子棋是否获得胜利
5.格内棋子显示切换
自己编写C++代码
使用C++标准库
在第一种切换模式中,通过对各种颜色赋值,实现棋子换色功能,从而达到切换为贪吃蛇、清屏等效果
6.初始化贪吃蛇的位置数据
自己编写C++代码
使用C++标准库
在第一种切换模式中,初始化贪吃蛇的位置数据
7.实时更新贪吃蛇的位置数据
自己编写C++代码
使用C++标准库
使用第三方库
使用QTimer库,每隔一定时间实时更新贪吃蛇的位置数据
8.贪吃蛇的食物获得判定
自己编写C++代码
使用C++标准库
根据游戏规则判定玩家的贪吃蛇阶段是否获得食物并进行其他操作(在第一种模式中直接获胜,在第二种模式中蛇长加长)
9.读取玩家对于贪吃蛇的位置移动
自己编写C++代码
使用C++标准库
通过键盘敲击信息获
文档评论(0)