c++掷骰子游戏

掷骰子游戏设计:假如有n个学生排成一圈,编号从1到n,每个人都有初始积分,不妨设为100。从1号开始掷骰子,骰子出现后,根据点数减去掷骰人的相应 积分,如减去(10*6-(掷骰点数)),然后根据点数多少,就依次向后数掷骰的点数同等数量的人,被数到的最后一个人继续掷骰子,计算积分,依此类推。 如果某人掷骰后,其积分小于等于0则出列,余下的人继续按照此法进行游戏,直到剩下最后一人,为胜利者。要求打印每次出列的人的编号,掷骰子的次数, 当前积分。并打印最后胜利者的相应信息。

#include <iostream>
#include <cstdlib>
#include <ctime>
#define N 100
using namespace std;
 
int Rnum()    //产生掷点数。
{
    srand((unsigned)time(NULL));
    int n;
 
    n=rand()%6+1;
 
    return n;
}
int main()
{
    int m,n;    //学生数m,掷点数n。
    int a[N]={0},a1[N]={0},i=1,j=0,k=0,cnt=0;        //学生编号i,出局人数cnt。
    cout<<"学生数为:";
    cin>>m;
 
    for(i=0;i<N;i++){
        a[i]=100;
    }
    n=Rnum();
    a[1]=100-10*(6-n);
    do{    
        i++;
        if(i>m)
            i=1;
        if(a[i]>0){        //未出局。
            k++;
            if(k==n){    //能掷骰子。
                n=Rnum();
                a[i] -= 10*(6-n);
                j=i;
                a1[j]++;
                k=0;
                if(a[i]<=0){    //出局。
                    cnt++;
                }
            }
        }
    }while(cnt!=m-1);
    for(i=1;i<=m;i++){
        if(a[i]>0){
            j=i;
            cout<<"胜利者编号:"<<i<<endl;
            cout<<"胜利者掷骰子次数:"<<a1[j]<<endl;
            cout<<"胜利者当前积分:"<<a[i]<<endl;
        }else{
            j=i;
            cout<<"出列学生编号:"<<i<<endl;
            cout<<"出列学生掷骰子次数:"<<a1[j]<<endl;
            cout<<"出列学生当前积分:"<<a[i]<<endl;
        }
    }
 
    return 0;
}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

优快云专家-深度学习进阶

听说打赏的都进了福布斯排行榜

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

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

打赏作者

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

抵扣说明:

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

余额充值