枚举,随机数模型,函数功能分解---扔骰子随机数游戏

  

 

//By cananpeng
//枚举,随机数模型,函数功能分解,自定义函数。
#include <iostream>
#include <cstdlib>
using namespace std;


enum GAMESTATUS{ win,lose,playing};//类型 还要有对应的变量
int main(){
    int sum,point;
    GAMESTATUS status;
    unsigned int seed;
    int rolldice();

    cout<<"plz enter an unsigned integer as seed : ";
    cin>>seed;//输入随机数种子,一会要通过srand送进rand函数中。输入随机数相同时,rand得到的结果是一样的。
    srand(seed);

    sum=rolldice();
    //第一轮
    switch(sum){
        case 7:
        case 11:status=win;break;
        case 2:
        case 3:
        case 12:status=lose;break;
        default:
            status=playing;
            point=sum;
            cout<<"point is "<<point<<endl;break;//default也会找break的标识符跳出选择。
    }

//第二轮到结束,判别;第二轮的和等于第一轮的点数,因此要注意语句顺序。题中简化了难度,点数随着轮数增加不变,若点数发生了变化呢?也很简单,增加一条点数的赋值语句即可
    while(status==playing){
        sum=rolldice();//例如,计算第二轮的和
        if(sum==point) status=win;
        else if (sum==7) status=lose;
    }//注意观察此处的逻辑,用的是else if ,而不是else(非你即我),用的是多分支。



    if(status==win)
        cout<<"player wins"<<endl;
    if(status==lose)
        cout<<"player loses"<<endl;
    return 0;
}



int rolldice(){
    //设计非常巧妙。因为随机的数字可以产生不受限,但是骰子的结果只有1-6,因此选择了除6取余(0-5)加1;
    //不选择除7取余,0-6。多了一个0的情况。
    int die1=1+rand()%6;
    int die2=1+rand()%6;
    int sum=die1+die2;
    cout<<"player rolled"<<die1<<"+"<<die2<<"="<<sum<<endl;
    return sum;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Canan猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值