c++课程设计报告-掷骰子游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、课题设计的内容与主要功能............. 错误!未定义书签。题目内容 ............................... 错误!未定义书签。
功能.................................. 错误!未定义书签。二.课题分析 ............................ 错误!未定义书签。项目的实现方法 ......................... 错误!未定义书签。
类的声明.............................. 错误!未定义书签。
》
核心算法及其实现代码.................... 错误!未定义书签。程序流程图 ............................. 错误!未定义书签。三.主要功能的实现步骤................... 错误!未定义书签。四.程序测试 ............................ 错误!未定义书签。测试计划 ............................... 错误!未定义书签。测试过程 ............................... 错误!未定义书签。
五、总结 (12)
六、参考书籍 (14)
【
七、附件 (15)
程序的源代码........................... 错误!未定义书签。评分表 (27)
一、课题设计的内容与主要功能
题目内容
`
编写程序实现投掷双骰子游戏,游戏规则为:游戏者每次投掷两颗骰子,每颗骰子是一个正方体,有6面上面分别标有1、2、3、4、5、6个圆点,当骰子停止时,将每颗骰子朝上的点的数相加,在第一次投掷骰时, 如果所得到的和为7或11,那么游戏者为赢得胜利; 如果所得到的和为2、3或12,那么游戏者为输掉了;如果和为4、5、6、8、9或10,那么为游戏者的点数;如要想赢得胜利,必须继续投掷骰子,直到取得自已的点数为止, 但是如果投掷出的和为7或者连续投掷了6次仍未赚得点数,那么游戏者为输了。
功能
该游戏的主要功能为:实现随机投掷两个骰子把其所得点数相加,然后根据点数和判断玩家的输、赢或平局。在游戏中有1.获得帮助 2.玩一手游戏 3.退出游戏三个提示,分别为玩家提供帮助指示、选择进入新的游戏、退出当前的游戏并为该局游戏显示游戏结果。
二.课题分析
项目的实现方法
这种小型的游戏的开发方法可以采用结构化方法分析与设计。首先,分析软件的逻辑模型,也就是这个软件需要“做什么”。然后,再建立软件的物理模型,既要“怎么做”的工程。该个程序由main()函数、实用的程序软件包文件及骰子游戏文件组成,在main()函数中,先建立类DiceGame的对象objGame并调用类DiceGame的构造函数,为类的数据成员赋初值并开始游戏,再用对象objGame访问类的成员函数Game(),进入游戏,通过选项玩家选择进入游戏或退出游戏。
]
在函数Game()中,先调用Help()函数显示游戏规则,并调用文件Rand类中SetRandSeed()函数设定当前时间为随机数种子,进入while循环中,显示游戏选项,玩家可选择1.获得帮助然后调用成员函数Help()显示提示;2.玩一手游戏然后调用成员函数RollDice(),把随机的两个骰子的点数赋值给整形数sum,通过switch()语句判断玩家输、赢或者平局。若玩家第一盘为平局状态为TIE,则该局骰子和为玩家的点数把sum赋值给myPoint,玩家可通过调用文件中的UserSaysYes()函数选择继续投骰子,直到赚到该点数时获胜状态为WIN,但是用if语句判断如果投掷出的和为7或者连续投掷出六次平局,则游戏者该局为输了LOSE。最后用while循环中的if语句为每一次输赢和平局计数并显示玩家的输赢的语句。3.退出游戏然后调用文件中的UserSaysYes()函数让玩家确定是否退出,退出后通过调用成员函数Show()显示游戏结果,游戏结束!
类的声明
文件中定义一个筛子游戏类DiceGame,其声明如下:
class DiceGame
{
Private
设计当前时间为随机数种子,模拟投掷一次两个骰子,返回值为所投掷的两颗骰子向上一面的点数之和。代码如下:
int DiceGame::RollDice() 通过if选择语句进入游戏项目2,模拟
第一次投掷骰子,并用switch开关语句来判断枚举量status的状态是输、赢或者平局,如果是平局,则记录点数。代码如下:
-
if(select==2) 过status的状态用if条件语句判断玩家的输赢,如果是平局,既status==TIE时,利用UserSaysYes()函数让玩家选择是否继续游戏。若玩家选择继续游戏,则依然用if条件语句判断status 的状态来判断输赢,只有玩家在六次以内再次投掷到相同的点数时,玩家即胜利,但是,若首先投掷到的点数和为7或者连续6次都是平局,则游戏为输了。代码如下:
while(1)
{
if(status==WIN)
{
cout<<"恭喜你,赢得游戏!"< break; } < if(status==LOSE) { cout<<"很遗憾,你输了!"< break; } while(status==TIE) { cout<<"你现在是平局,是否要继续游戏"; : if(UserSaysYes()) { int again; again=RollDice(); 果玩家的输入有误,则需用if条件语句判断,并提示正确的输入。代码如下: