
c++编程题
双骰子游戏是一种掷俩个骰子的赌博游戏,游戏规则如下:其中第一掷出7或11获胜,第一掷出2,3或12输,若第一掷出其他任何一个数目,即4,5,6,8,9,10,则必须重复点...
双骰子游戏是一种掷俩个骰子的赌博游戏,游戏规则如下:其中第一掷出7或11获胜,第一掷出2,3或12输,若第一掷出其他任何一个数目,即4,5,6,8,9,10,则必须重复点数才能获胜,如若在此之前掷出7点。那么就输了。
编写一个以上规则的玩双骰子游戏程序,他可以模拟游戏无需手动输入,程序不要求下赌注,但应能计算玩家是否会赢或输。创建一个函数模拟俩个骰子并返回点数和。增加一个循环使程序可以玩10000次游戏,增加计数器来统计玩家赢了多少次,在10000次游戏结束后,统计赢的概率,输出该值。可以邮箱416679828@qq.com 展开
编写一个以上规则的玩双骰子游戏程序,他可以模拟游戏无需手动输入,程序不要求下赌注,但应能计算玩家是否会赢或输。创建一个函数模拟俩个骰子并返回点数和。增加一个循环使程序可以玩10000次游戏,增加计数器来统计玩家赢了多少次,在10000次游戏结束后,统计赢的概率,输出该值。可以邮箱416679828@qq.com 展开
1个回答
展开全部
#include<iostream.h>
#include<stdlib.h>
#include<iomanip.h>
#include<time.h>
void sum(int *a,int n){
int c,b;
c=rand()%6+1;
b=rand()%6+1;
cout<<setw(5)<<c<<setw(5)<<b;
a[n]=c+b;
}
int judge(int *a,int n){
if(*a==7||*a==11)
return 1;
else
if(*a==2||*a==3||*a==12)
return 2;
if(a[n]==*a&&n>0)
return 1;
if(n>0&&(a[n]==7))
return 2;
return 0;
}
void show(int i){
if(i==2)
cout<<"you lose"<<endl;
else
cout<<"you win"<<endl;
}
int main(){
srand(time(0));
int a[10000],b,count=0;
double f;
for(int j=0;j<10000;++j){
for(int i=0;i<100;++i){
sum(a,i);
cout<<setw(5)<<a[i]<<endl;
if(judge(a,i)){
break;
}
}
show(judge(a,i));
if((judge(a,i)-2))
count++;
}
f=count/10000.0;
cout<<count<<" "<<f;
}
自己写的 本人新手 估计判断的时候有点儿复杂了 vc6.0可运行
#include<stdlib.h>
#include<iomanip.h>
#include<time.h>
void sum(int *a,int n){
int c,b;
c=rand()%6+1;
b=rand()%6+1;
cout<<setw(5)<<c<<setw(5)<<b;
a[n]=c+b;
}
int judge(int *a,int n){
if(*a==7||*a==11)
return 1;
else
if(*a==2||*a==3||*a==12)
return 2;
if(a[n]==*a&&n>0)
return 1;
if(n>0&&(a[n]==7))
return 2;
return 0;
}
void show(int i){
if(i==2)
cout<<"you lose"<<endl;
else
cout<<"you win"<<endl;
}
int main(){
srand(time(0));
int a[10000],b,count=0;
double f;
for(int j=0;j<10000;++j){
for(int i=0;i<100;++i){
sum(a,i);
cout<<setw(5)<<a[i]<<endl;
if(judge(a,i)){
break;
}
}
show(judge(a,i));
if((judge(a,i)-2))
count++;
}
f=count/10000.0;
cout<<count<<" "<<f;
}
自己写的 本人新手 估计判断的时候有点儿复杂了 vc6.0可运行
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询