掷骰子游戏设计:

       假如有n个学生排成一圈,编号从1到n,每个人有初始积分,不防设为100。从1号开始掷骰子,骰子出现后,根据点数减去掷骰人的相应积分,如减去
10*(6 -
投掷点数),然后根据点数多少,就依次向后数掷骰的点数同等数量的人,被数到的最后一个人继续掷骰子,计算积分,依此类推。如果某人掷骰后,其积分小于等于0则出列,余下的人继续按照此法进行游戏,直到剩下最后一个人,为胜利者。要求打印每次出列的人的编号,掷骰子的次数,当前积分。并打印最后胜利者的相应信息。
#include<iostream> #include<stdlib.h> #include <time.h> using namespace std;
int main() { int i,j,n,magic,remind,count;
//n为学生数量,magic为扔骰子的数目,remind为剩下的人数,count为向后数的有效人数 int a[1000],b[1000]; cin>>n;
remind=n; for(i=0;i<n;i++) { a[i]=0; //记录每个学生扔骰子的次数 b[i]=100; //记录每个学生的积分 }
i=0; count=0; magic=0; srand((unsigned)time(NULL)); while(remind>1)
for(j=0;j<n;j++) { if(b[j]==101) continue; if(b[i]<=0) {
cout<<"被淘汰学生的编号为:"<<i+1<<" " <<"该学生扔骰子的次数为:"<<a[i]<<" "
<<"该学生最后的积分为:"<<b[i]<<endl; b[i]=101; remind--; } count++; if(count==magic+1) {
i=j; count=0; magic=rand()%6+1; b[i]=b[i]-10*(6-magic); a[i]++; } }
for(i=0;i<n;i++) if(b[i]!=101) cout<<"最后胜利的学生的编号为:"<<i+1<<" "
<<"该学生扔骰子的次数为:"<<a[i]<<" " <<"该学生最后的积分为:"<<b[i]<<endl; return 0; }

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信