投双骰子游戏的C++程序 请大家帮帮忙啊,我们要课程设计!!谢谢啦 25

每个骰子有6面,这些面包含1、2、3、4、5、6个点,投两枚骰子之后,计算点数之和。如果第一次投的点数和为7或11,则游戏者获胜;如果第一次投的点数和为2、3或12,则游... 每个骰子有6面,这些面包含1、2、3、4、5、6个点,投两枚骰子之后,计算点数之和。如果第一次投的点数和为7或11,则游戏者获胜;如果第一次投的点数和为2、3或12,则游戏者输;如果第一次投的点数和为4、5、6、8、9或10,则将这个和作为游戏者获胜需要掷出的点数,继续投骰子,直到赚到该点数时算是游戏者获胜。如果投掷7次仍未赚到该点数,则游戏者输。
设置一个枚举型变量gameStatus来跟踪这个状态,游戏者获胜时,将gameStatus置为WON,游戏者失败时,将gameStatus置为LOST,否则游戏不能结束,需通过再次投掷确定胜负,先将gameStatus置为CONTINUE,同时,将sum保存在myPoint中,在后续的while循环中,再次调用rollDice产生新的sum,当sum等于myPoint时,将gameStatus置为WON,如果又投掷了7次,sum仍未等于myPoint,则将gameStatus置为LOST。在程序的最后,根据gameStatus的值,打印胜负结果。
展开
 我来答
zhaojinqinzai
2012-12-19
知道答主
回答量:11
采纳率:0%
帮助的人:1.8万
展开全部
class DiceGame
{
private:
// 数据成员:
int numOfWin; // 胜利数次
int numOfLose; // 失败数次
int numOfTie; // 平局数次

// 辅助函数
int RollDice(); // 模拟投掷一次骰子
void Help(); // 获得帮助
void Show(); // 显示统计结果
public:
// 方法声明:
DiceGame(); // 无参数的构造函数
virtual ~DiceGame(){} // 析构函数
void Game(); // 模拟游戏
};
一、实现步骤
1.获得游戏帮助功能
void DiceGame::Help() // 获得帮助
{
cout << " 游戏者每次投掷两颗骰子,每个骰子是一个正方体有 " << endl;
cout << " 6面上面分别标有1、2、3、4、5、6个圆点,当骰子停止时 " << endl;
cout << " 将每个骰子朝上的点的数相加,在第一次投掷骰时, 如果 " << endl;
cout << " 所得到的和为7或11,那么游戏者为赢得胜利; 如果所得到 " << endl;
cout << " 的和为2、3或12,那么游戏者为输掉了;如果和为4、5、6 " << endl;
cout << " 、8、9或10,那么为游戏者的点数;如要想赢得胜利,必 " << endl;
cout << " 须继续投掷骰子,直到取得自已的点数为止, 但是如果投 " << endl;
cout << " 掷出的和为7,那么游戏者为输了. "<< endl;

}
2.显示游戏数据功能
void DiceGame::Show() // 显示统计结果
{
cout << " 您的最后游戏数据统计:" << endl;
cout << " 获胜 " << numOfWin << " 次" << endl;
cout << " 失败 " << numOfLose << " 次" << endl;
cout << " 平局 " << numOfTie << " 次" << endl << endl ;
cout << "--------------------------------------------------" << endl;
cout << " <<<欢迎您下次再来玩>>> " <<endl;
cout << " <<<再见>>> " << endl;
cout << "--------------------------------------------------" << endl;

}
3.模拟游戏功能
void DiceGame::Game() // 模拟游戏
{
int i(0);
int select = 1;
int sum, myPoint;
GameStatus status; // 游戏状态
Rand::SetRandSeed(); // 设置当前时间为随机数种子
Help(); // 获得帮助

while (select != 3)
{
cout << endl << endl << "请选择下面序号:" << endl;
cout << " 1. 获得帮助" << endl;
cout << " 2. 玩一手游戏"" << endl;
cout << " 3. 显示结果" << endl;
cout << " 4. 退出游戏" << endl;
cin >> select; // 输入选择

switch (select)
{
case 1: // 获得帮助
Help();
break;
case 4:
exit(1);
break;
case 2:
sum = RollDice(); // 第一次投掷骰子
switch (sum)
{
case 7:
case 11: // 第一次投掷骰子就赢了
status = WIN;
break;
case 2:
case 3:
case 12: // 第一次投掷骰子就输了
status = LOSE;
break;
default: // 记下点数
myPoint = sum;
cout << "点数为 " << myPoint << " ." << endl;
status = TIE; // 表示平局
break;
}

while (status == TIE)
{ // 游戏处于平局状态
cout << "游戏现处于平局,是否选择继续投掷取得您的点数";
if (UserSaysYes())
{ // 选择继投掷
sum = RollDice(); // 继续投掷骰子
if (sum == myPoint)
{ // 得到自已想要的点数,赢得胜利
status = WIN;
}
else if (sum == 7)
{ // 投出点数7,输了
status = LOSE;
}
}
else
{ // 选择平局
break;
}
}

switch (status)
{
case WIN: // 选手赢得胜利
cout << " 恭喜您赢得胜利,手气不错哦!!!" << endl;
numOfWin++; // 累加选手获胜次数
i++; // 累加选手连续获胜次数
if (i>=2) // 选手连续赢了两盘以上
cout << " 恭喜您已经连续赢了 " << i << " 盘,再接再厉吧!!!" << endl <<endl;

break;
case LOSE: // 选手输了
cout << " 哦,对不起,您输了,不要灰心,继续加油!!!" << endl;
numOfLose++; // 累加选手失败次数
i=0; // 清除选手连续获胜次数
break;
case TIE: // 平局
cout << " 获得平局,想获得胜利,继续吧!!!" << endl;
numOfTie++; // 累加选手平局次数
break;
}
break;
}
}

Show(); // 显示统计结果
}
匿名用户
2010-06-21
展开全部
遥控器
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式