【C语言基础】——6个人摇骰子

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 = 0;           //本局骰子
	int dat_before = -1;   //上局骰子
	int i;
	int k = 1;    //起始赌金
	int money[6] = { 10,10,10,10,10,10 };
	srand((unsigned)time(NULL));     //初始化随机数产生器
	while (1)
	{
		printf("\n-----------------------------------\n");
		for (i = 0; i <= 5; i++)       //检查余额
		{
			if (money[i] <= 0)  //其中一位余额不足
			{
				printf("编号:%d,金额:%d\n", i + 1, money[i]);
				printf("游戏结束");
				return -1;   //游戏结束
			}
		}

		dat = rand() % 6 + 1;    //产生随机数(1~6)
		if (dat == dat_before)    //比较骰子,赌金是否翻倍
		{
			k *= 2;
			printf("%d号连胜,赌金翻倍 !!\n", dat);
		}
		else
			k = 1;

		printf("赌局金额 : %d\n", k);
		printf("本局胜者 :%d\n", dat);

		for (i = 0; i <= 5; i++)       //支付罚金
		{

			if (i == (dat - 1))
			{
				money[dat - 1] = k * 5 + money[dat - 1];//编号为随机数的人将钱收入囊中
				printf("编号:%d,金额:%d (本局胜者)\n", dat, money[dat - 1]);
			}
			else
			{
				money[i] -= k;  //每一位输的给出罚金
				printf("编号:%d,金额:%d\n", i + 1, money[i]);
			}
		}

		dat_before = dat;    //记住上局的骰子
	}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值