投骰子游戏(C++)

每个骰子有六面,点数分别为1、2、3、4、5、6
游戏者在程序开始时输入一个无符号整数,作为产生随机数的种子
每轮投两次骰子,第一轮如果和数为7或11则为胜,游戏结束;
和数为2、3或12则为负,游戏结束;
和数为其它值则将此值作为自己的点数,继续第二轮、第三轮...
直到某轮的和数等于点数则取胜,若在此前出现和数为7则为负
 

srand()函数

原型: void srand(unsigned int seed)
参数: seed产生随机数的种子
所需头文件: <cstdlib>
功能:为使rand()产生-序列伪随机整数而设置起
始点。使用1作为seed参数,可以重新初化rand()
 

代码:

#include "stdafx.h"
#include <cstdlib>
#include<iostream>
using namespace std;

enum GameStatus{WIN,LOSE,PLAYING};//定义枚举类型
int _tmain(int argc, _TCHAR* argv[])
{
    int sum,myPoint;
    GameStatus status;//定义枚举变量
    unsigned seed;
    int rollDice();
    cout<<"please enter an unsigned interger:";
    cin>>seed; //随机数种子
    srand(seed);//讲种子传递给rand()
    sum=rollDice();//第一轮投骰子、计算和数

    switch(sum){
    case 7:
    case 11:
        status=WIN;
        
        break;
    case 2:
    case 3:
    case 12:
        status=LOSE;
        
        break;
    default:
        status=PLAYING;
        myPoint=sum;
        cout<<"point is"<<myPoint<<endl;
        break;
    }
    while(status==PLAYING)
    {
        sum=rollDice();
        if(sum==myPoint)
            status=WIN;
        else if(sum==7)
            status=LOSE;
    }
    if (status==WIN)
        cout<<"你赢了"<<endl;
    else if(status==LOSE)
        cout<<"你输了"<<endl;
    system("pause");
    return 0;
}
int rollDice()
{
    int die1=1+rand()%6;
    int die2=1+rand()%6;
    int sum=die1+die2;
    cout<<"player rolled"<<die1<<"+"<<die2<<"="<<sum<<endl;
    return sum;
}

运行结果:

发布了24 篇原创文章 · 获赞 7 · 访问量 3776

猜你喜欢

转载自blog.csdn.net/qq_39980334/article/details/104264390