**题目:**6个人摇骰子,各自的编号是1、2、3、4、5、 6,没人初始金币是10,游戏规则如下:
①根据骰子的结果确认winner。
比如:骰子结果是1,那么“一号选手"是winner, 骰子结果是2,那么“2号选手”是winner;
②如果连续同一个人是winner,那么独居金额翻倍。
比如:第一次骰子结果是3,那么其他所有人需要给"三号选手”1元,加入第二轮骰子结果依然是3,那么每人需要给"三号选手”2元;连续三次骰子结果是3,则是4元;以此类推;
③如果非连续同一个人是winner,那么妒忌金额重新回到1元。
比如:骰子连续两轮结果是3,但是第三轮结果是4,那么第三轮赌局金额重新回到1元,
④如果:金钱小于等于0元就出局。
要求:请编写代码模拟游戏过程,输出每一局每个人的剩余金额, 并输出第一个人出局人的编号,可以使用rand () 函数来输出随机整数。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int dat,dat1;
int i;
int j=3;
int k=1;
int money[7]={10,10,10,10,10,10,10};
srand((unsigned)time(NULL)); //初始化随机数产生器
while(1)
{
dat=rand()%6+1; //产生第一次随机数
printf("dat:%d\n",dat);
dat1=rand()%6+1;
printf("dat1:%d\n",dat1); //产生第二次随机数
while(dat==dat1) //两次随机数相同
{
for(i=1;i<=6;i++)
{
if(money[i]<0) //其中一位余额不足
{
printf("编号:%d,金额:%d\n",i,money[i]);
printf("游戏结束");
goto L1; //游戏结束
}
money[i]-=k; //每一位给出罚金
printf("编号:%d,金额:%d\n",i,money[i]);
}
money[dat]=k*6+money[dat];//编号为随机数的人将钱收入囊中
printf("winter:编号:%d,金额:%d\n",dat,money[dat]);
k++;//连续胜利,处罚加倍
dat1=rand()%6+1; //继续摇骰子
}
k=1;//连续中断,罚金回归原始值
}
L1:while(1);
return 0;
}