掷骰子游戏
/*
游戏者每次投掷两颗骨子,每个骰子是一个正方体,当骰子停止时,将每个骰子朝上的点数相加,
在第一次投掷骰子时,如果所得到的和为7或11,那么游戏者为胜;所得和为2、3或12则输
如和为4、5、6、8、9或 10,则此和为游戏者点数。
如要想赢得胜利,必须继续投掷骰子,直到取和得自己的点数(也即规则2的点数)为止,
如果投掷出的和为7,则为输(并非指第一次投掷的情况下)
要 求
main函数中可选择是继续还是退出游戏,统计并显示游戏获胜次数和输掉次数。
*/
#include<iostream>
#include<ctime>
using namespace std;
void main()
{
cout<<"是否开始游戏(Y/N)"<<endl;
char choice;
int num1,num2,sum,tag,win=0,lose=0;
cin>>choice;
while(true)
{
if(choice!='Y'&&choice!='y')
{
cout<<"获胜"<<win<<"次"<<endl;
cout<<"输掉"<<lose<<"次"<<endl<<endl;
return;
}
srand((unsigned)time(NULL)+rand());
num1=1+rand()%6;
num2=1+rand()%6;
cout<<num1<<'\t'<<num2<<endl;
tag=num1+num2;
sum=num1+num2;
if(sum==7||sum==11)
{
cout<<"You win!!!"<<endl<<endl;
win++;
}
else if(sum==2||sum==3||sum==12)
{
cout<<"GAME OVER!!!"<<endl<<endl;
lose++;
}
else
{
while(true)
{
cout<<"你还有机会哦,请按任意键继续掷骰子"<<endl;
system("pause");
cout<<endl;
srand((unsigned)time(NULL)+rand());
num1=1+rand()%6;
num2=1+rand()%6;
cout<<num1<<'\t'<<num2<<endl;
sum=num1+num2;
if(sum==7)
{
cout<<"GAME OVER!!!"<<endl;
lose++;
break;
}
else if(sum==tag)
{
cout<<"You win!!!"<<endl;
win++;
break;
}
}
}
cout<<"是否继续该游戏(Y/N)"<<endl;
cin>>choice;
}
cout<<"获胜"<<win<<"次"<<endl;
cout<<"输掉"<<lose<<"次"<<endl<<endl;
}