每个骰子有六面,点数分别为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;
}
运行结果: