- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c课程设计报告 掷骰子游戏
目录
一、课题设计的内容与主要功能 2
1.1题目内容 2
1.2 功能 2
二.课题分析 2
2.1项目的实现方法 2
2.2 类的声明 3
2.3核心算法及其实现代码 4
2.3程序流程图 7
三.主要功能的实现步骤 8
四.程序测试 9
4.1测试计划 9
4.2测试过程 9
五、总结 12
六、参考书籍 14
七、附件 15
7.1 程序的源代码 15
评分表……………………………………………………………… 27
一、课题设计的内容与主要功能
1.1题目内容
编写程序实现投掷双骰子游戏,游戏规则为:游戏者每次投掷两颗骰子,每颗骰子是一个正方体,有6面上面分别标有1、2、3、4、5、6个圆点,当骰子停止时,将每颗骰子朝上的点的数相加,在第一次投掷骰时, 如果所得到的和为7或11,那么游戏者为赢得胜利; 如果所得到的和为2、3或12,那么游戏者为输掉了;如果和为4、5、6、8、9或10,那么为游戏者的点数;如要想赢得胜利,必须继续投掷骰子,直到取得自已的点数为止, 但是如果投掷出的和为7或者连续投掷了6次仍未赚得点数,那么游戏者为输了。
1.2 功能
该游戏的主要功能为:实现随机投掷两个骰子把其所得点数相加,然后根据点数和判断玩家的输、赢或平局。在游戏中有1.获得帮助 2.玩一手游戏 3.退出游戏 三个提示,分别为玩家提供帮助指示、选择进入新的游戏、退出当前的游戏并为该局游戏显示游戏结果。
二.课题分析
2.1项目的实现方法
这种小型的游戏的开发方法可以采用结构化方法分析与设计。首先,分析软件的逻辑模型,也就是这个软件需要“做什么”。然后,再建立软件的物理模型,既要“怎么做”的工程。该个程序由main()函数、实用的程序软件包utility.h文件及骰子游戏dice_game.h文件组成,在main()函数中,先建立类 DiceGame的对象objGame并调用类DiceGame的构造函数,为类的数据成员赋初值并开始游戏,再用对象objGame访问类的成员函数Game(),进入游戏,通过选项玩家选择进入游戏或退出游戏。
在函数Game()中,先调用Help()函数显示游戏规则,并调用utility.h文件Rand类中SetRandSeed()函数设定当前时间为随机数种子,进入while循环中,显示游戏选项,玩家可选择1.获得帮助 然后调用成员函数Help()显示提示;2.玩一手游戏 然后调用成员函数RollDice(),把随机的两个骰子的点数赋值给整形数sum,通过switch()语句判断玩家输、赢或者平局。若玩家第一盘为平局状态为TIE,则该局骰子和为玩家的点数把sum赋值给myPoint,玩家可通过调用utility.h文件中的UserSaysYes()函数选择继续投骰子,直到赚到该点数时获胜状态为WIN,但是用if语句判断如果投掷出的和为7或者连续投掷出六次平局,则游戏者该局为输了LOSE。最后用while循环中的if语句为每一次输赢和平局计数并显示玩家的输赢的语句。3.退出游戏 然后调用utility.h文件中的UserSaysYes()函数让玩家确定是否退出,退出后通过调用成员函数Show()显示游戏结果,游戏结束!
2.2 类的声明
文件dice_game.h中定义一个筛子游戏类DiceGame,其声明如下:
class DiceGame
{
Private
// 数据成员:
int numOfWin; // 胜利数次
int numOfLose; // 失败数次
int numOfTie; // 平局数次
// 辅助函数
int RollDice(); // 模拟投掷一次骰子
void Help(); // 获得帮助
void Show(); // 显示统计结果
public:
// 方法声明:
DiceGame(); // 无参数的构造函数
virtual ~DiceGame(){} // 析构函数
void Game (); // 模拟游戏
};
2.3核心算法及其实现代码
1. 设计当前时间为随机数种子,模拟投掷一次两个骰子,返回值为所投掷的两颗骰子向上一面的点数之和。代码如下:
int DiceGame::RollDice() // 模拟投掷一次骰子,返回值为所投的两颗骰子向上一面的点数之和
{
int numOfDice1; // 所投掷的第1颗骰子向上一面的点数
int numOfDice2 /
文档评论(0)