掷双骰

在最流行的博彩游戏中有一种名为“掷双骰”的骰子游戏,这种游戏在世界各地的娱乐场所和大街小巷非常受欢迎。游戏的规则很简单:

玩家掷两个骰子。每个骰子有六面,分别含有1、2、3、4、5、和6个点。掷完骰子后,计算两个朝上的面的点数之和。如果首次投掷点数总和是7或11,那么玩家赢;如果首次投掷的点数之和是2、3或者12,那么玩家输;如果首次投掷的点数之和是4、5、6、8、9、或者10,那么这个和就成为玩家的“目标点数”。要想要赢的话玩家必须连续地掷骰子直到点数与这个目标点数相同为止,即“得到了点数”。但在得到点数前,如果掷到的是7,就会输掉。

定义rollDice函数用于掷骰子和计算、打印店数和。

枚举类型Status,玩家在第一次或者后面掷骰子可能赢,也可能输,定义一个枚举类型gameStatus来定义游戏运行时的三种状态“CONTINUE继续, WON玩家赢, LOST玩家输”。

程序代码:

#include<iostream>

#include<ctime>

#include<cstdlib>

using namespace std;

 

//定义掷骰子函数返回两骰子点数之和

unsigned int rollDice();

 

int main()

{

//枚举类型CONTINUE继续, WON玩家赢, LOST玩家输(即庄家赢)

    enum Status{ CONTINUE, WON, LOST };

 

    //以系统当前时间毫秒数作为种子产生随机数

    srand(static_cast<unsigned int>(time(0)));

   

    unsigned int myPoint = 0;

    Status gameStatus = CONTINUE;//初始化游戏状态

    unsigned int sumOfDice = rollDice();

 

    switch(sumOfDice)

    {

       case 7:

       case 11:

           gameStatus = WON;

           break;

       case 2:

       case 3:

       case 12:

           gameStatus = LOST;

           break;

       default:

           gameStatus = CONTINUE;

           myPoint = sumOfDice;

           cout<<"Point is"<<myPoint<<endl;

           break;

     }

     while(CONTINUE ==gameStatus)

     {

        sumOfDice = rollDice();

        if(sumOfDice == myPoint)

           gameStatus = WON;

        else if(sumOfDice == 7)

           gameStatus = LOST;

     }

 

     if(WON == gameStatus)

        cout<<"Player wins"<<endl;

     else

     cout<<"Playerloses"<<endl;

}

 

unsigned int rollDice()//实现掷骰子

{

    unsigned int die1 = 1+ rand() % 6;//产生第一个骰子数

    unsigned int die2 = 1+ rand() % 6;//产生第二个骰子数

 

    unsigned int sum = die1 + die2;

    cout<<"Player rolled "<<die1<<"+ "<<die2

       <<" = "<<sum<<endl;

       return sum;

}

运行结果:






  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值