初夏小谈: 模拟王者荣耀_荣耀水晶抽奖活动

历时两星期,期间中断过,因为各种原因,不过还是坚持完成了.下来感觉很充实.话不多说看代码(约340行).

//存在问题:当抽到荣耀水晶时,幸运值无法归0;
//王者荣耀积分夺宝 
#include<Aventador_SQ.h>

//打印菜单
void menu(int count)
{
	printf("=======================================================================================\n");
	printf("***************************************************************************************\n");
	printf("***** ┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓                              ┏┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┓┏┳┳┳┳┳┳┳┳┳┓ *****\n");
	printf("***** ┣   积分夺宝  ┫                              ┣ 本周累计个数重置┫┣   规则  ┫ *****\n");
	printf("***** ┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛                              ┗┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┛┗┻┻┻┻┻┻┻┻┻┛ *****\n");
	printf("***** ┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓ *****\n");
	printf("***** ┣   荣耀水晶  ┫┣     李白    ┫┣ 铭文碎片(80)┫┣ 4级铭文:荆棘┫┣   钻石(50)  ┫ *****\n");
	printf("***** ┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛ *****\n");
	printf("***** ┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓   ┏┳┳┳┳┳┳┳┳┳┳┳┳┓                            ┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓ *****\n");
	printf("***** ┣   死神来了  ┫   ┣  幸运值:%3d┫                            ┣  英雄碎片(5)┫ *****\n", count);
	printf("***** ┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛   ┗┻┻┻┻┻┻┻┻┻┻┻┻┛                            ┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛ *****\n");
	printf("***** ┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓  ┏┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┓┏┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┓  ┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓ *****\n");
	printf("***** ┣     杨戬    ┫  ┣   积45买1次        ┫┣     积200买5次  ┫  ┣ 3级铭文:致命┫ *****\n");
	printf("***** ┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛  ┗┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┛┗┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┛  ┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛ *****\n");
	printf("***** ┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓┏┳┳┳┳┳┳┳┳┳┳┳┳┳┓ *****\n");
	printf("***** ┣ 5级铭文:传承┫┣ 铭文碎片(50)┫┣   偶像歌手  ┫┣   金币(288) ┫┣  皮肤碎片(5)┫ *****\n");
	printf("***** ┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛┗┻┻┻┻┻┻┻┻┻┻┻┻┻┛ *****\n");
	printf("***************************************************************************************\n");
	printf("=======================================================================================\n");
}
//方式1抽奖
int probability(int count)
{
	int num;
	int static i = 0;
	int static j = 0;
	int static k = 0;
MZ:
	num = rand() % 361;
	if (count != 360)
	{
		if (num == 228)
		{
			printf("\n");
			printf("********************\n");
			printf("******荣耀水晶******\n");
			printf("********************\n");
			return 0;
		}
		else if (num > 0 && num < 90)
		{
			printf("钻石(50)\n");
		}
		else if (num >= 90 && num < 228)
		{
			printf("铭文碎片(50)\n");
		}
		else if (num >= 229 && num < 280)
		{
			printf("铭文碎片(80)\n");
		}
		else if (num == 280 || num == 281)
		{
			if (i == 0)
			{
				printf("偶像歌手\n");
				i++;
			}
			else
				goto MZ;
		}
		else if (num > 281 && num < 287)
		{
			if (j == 0)
			{
				printf("死神来了\n");
				j++;
			}
			else
				goto MZ;
		}
		else if (num >= 287 && num < 318)
		{
			if (k == 0)
			{
				printf("杨戬\n");
				k++;
			}
			else
				goto MZ;
		}
		else if (num >= 318 && num < 321)
		{
			printf("5级铭文:传承");
		}
		else if (num >= 321 && num < 335)
		{
			printf("皮肤碎片(5)\n");
		}
		else if (num >= 335 && num < 340)
		{
			printf("金币(288)\n");
		}
		else if (num >= 340 && num < 350)
		{
			printf("英雄碎片(5)\n");
		}
		else if (num >= 350 && num < 355)
		{
			printf("4级铭文:荆棘\n");
		}
		else
		{
			printf("3级铭文:致命\n");
		}
	}
	return count;
}
//方式2抽奖
int probability_1(int count)
{
	int i;
	int static yangjian = 0;
	int static ouxiang = 0;
	int static sishen = 0;
	int num;
	for (i = 0; i < 5; i++)
	{
	Repet:
		num = rand() % 361;
		if (num == 228)
		{
			printf("\n");
			printf("********************\n");
			printf("******荣耀水晶******\n");
			printf("********************\n");
			return 0;
		}
		else if (num > 0 && num < 80)
		{
			printf("钻石(50)\t");
		}
		else if (num >= 80 && num < 200)
		{
			printf("铭文碎片(50)\t");
		}
		else if (num >= 200 && num < 280)
		{
			printf("铭文碎片(80)\t");
		}
		else if (num == 280 || num == 281)
		{
			if (ouxiang == 0)
			{
				printf("偶像歌手\t");
				ouxiang++;
			}
			else
			{
				goto Repet;
			}
		}
		else if (num > 281 && num < 287)
		{
			if (sishen == 0)
			{
				printf("死神来了\t");
				sishen++;
			}
			else
			{
				goto Repet;
			}
		}
		else if (num >= 287 && num < 318)
		{
			if (yangjian == 0)
			{
				printf("杨戬\t");
				yangjian++;
			}
			else
			{
				goto Repet;
			}
		}
		else if (num >= 318 && num < 321)
		{
			printf("5级铭文:传承\t");
		}
		else if (num >= 321 && num < 335)
		{
			printf("皮肤碎片(5)\t");
		}
		else if (num >= 335 && num < 340)
		{
			printf("金币(288)\t");
		}
		else if (num >= 340 && num < 350)
		{
			printf("英雄碎片(5)\t");
		}
		else if (num >= 350 && num < 355)
		{
			printf("4级铭文:荆棘\t");
		}
		else
		{
			printf("3级铭文:致命\t");
		}
	}
	printf("\n");
	return count;
}
//充值函数
int VoucherCenter()
{
	int nums = 0;
	int jine = 0;
	printf("积分不足请选择:\n");
	printf("(家里有矿)请充值请选择1,退出选择2。\n");
	scanf("%d", &nums);
	if (nums == 1)
	{
		printf("************************* ************************ ************************** ***************************\n");
		printf("***1.|---  10点券   ---|* * 2.|---  60点券   ---|* *  3.|---  180点券   ---|* * 4.|---  300点券   ---|***\n");
		printf("***  |**购买 ¥ 1RMB **|* *   |**购买 ¥ 6RMB **|* *    |**购买 ¥ 18RMB **|* *   |**购买 ¥ 30RMB **|***\n");
		printf("************************* ************************ ************************** ***************************\n");
		printf("\n");
		printf("************************* ************************* ************************* ***************************\n");
		printf("***5.|---   680点券 ---|* * 6.|---  1180点券  ---|* * 7.|---  1980点券  ---|* * 8.|---  3480点券  ---|***\n");
		printf("***  |**购买 ¥ 68RMB**|* *   |**购买 ¥ 118RMB**|* *   |**购买 ¥ 198RMB**|* *   |**购买 ¥ 348RMB**|***\n");
		printf("************************* ************************* ************************* ***************************\n");
	recharge:
		printf("请选择充值的金额(直接输入数字即可单位RMB):");//(直接输入数字即可单位RMB)
		scanf("%d", &jine);
		//printf("元\n");
		switch (jine)
		{
		case 1:
		case 6:
		case 18:
		case 30:
		case 68:
		case 118:
		case 198:
		case 348:
			printf("%d RMB充值中请稍后...\n", jine);
			//调用充值函数(单位ms)请等待...
			Sleep(3000);
			printf("\n");
			printf("*****************\n");
			printf("*** 充值成功! ***\n");
			printf("*****************\n");
			printf("\n");
			break;
		default:
			printf("输入错误请重新选择:\n");
			goto recharge;
		}

	}
	return jine * 10;//转换为点券
}

int main()
{
	int Luck_val = 0;
	int integral_1 = 0;//选择方式
	int integral = 0;//一定可以抽到荣耀水晶所需积分(14445)
	int count;//幸运值
			  //	int set;//用来接收当抽到荣耀水晶时返回count(幸运值为0)
	count = 0;
	srand((unsigned int)time(NULL));
	menu(count);
	printf("抽奖方式分为2种,输入1抽1次,输入2出5次,输入0结束抽奖\n");
	printf("输入其它数字请重新输入。\n");
	while (1)
	{
		printf("剩余积分:%d\n", integral);
		printf("请选择要抽奖的方式:>");
		scanf("%d", &integral_1);
		if (integral_1 == 0)
		{
			printf("本次抽奖结束\n");
			menu(count);
			break;
		}
		if (integral_1 == 1)
		{
			if (integral >= 45)
			{
				count++;
				count = probability(count);//调用抽奖函数1
				menu(count);
				integral -= 45;
			}
			else
			{
				static int ChoZhi = 0;
				//积分不足的处理,调用充值函数
				ChoZhi = VoucherCenter();
				integral = integral + ChoZhi;
			}
		}
		if (integral_1 == 2)
		{
			if (integral >= 200)
			{
				count = count + 5;
				probability_1(count);
				menu(count);
				integral -= 200;
			}
			else
			{
				static int ChoZhi = 0;
				//积分不足的处理,调用充值函数
				ChoZhi = VoucherCenter();
				integral = integral + ChoZhi;
			}
		}
		if (count == 361)
		{
			printf("\n");
			printf("********************\n");
			printf("******荣耀水晶******\n");
			printf("********************\n");
			count = 0;
			menu(count);
		}
	}
	system("pause");
	return 0;
}

代码上述问题已经修改.但肯定还有不足之处,希望大家多多指教...

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值