#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#pragma warning(disable : 4996)
void 抽卡();
int chances = 0; // 定义变量
int blue = 0; // 声明为全局变量
int purple = 0; // 声明为全局变量
int yellow = 0; // 声明为全局变量
int count = 0;
int purple_count = 0;
int yellow_count = 0;
int main()
{
srand(time(NULL)); // 移动到 main 的开头
char str[lbk]10[rbk]; // 为str分配足够的内存
char 是否再来一局[lbk]10[rbk]; // 添加分号
while (1) // 使用循环代替goto
{
printf("十连(输入10)/单抽(输入1)\n");
scanf("%s", str);
if (strcmp(str, "10") == 0)
{
for (int i = 0; i < 10; i++)
{
抽卡();
}
}
else if (strcmp(str, "1") == 0)
{
抽卡();
}
else
{
printf("输入无效,请输入'10'或'1'.\n");
continue; // 继续循环
}
printf("总抽数:%d\n", count);
printf("蓝色卡牌:%d\n", blue);
printf("紫色卡牌:%d\n", purple);
printf("黄色卡牌:%d\n", yellow);
printf("总计获得积分:%d\n", blue * 1 + purple * 3 + yellow * 10);
printf("你想再玩一次吗(输入y/n)\n"); // 添加换行
scanf("%s", 是否再来一局); // 使用半角引号
if (strcmp(是否再来一局, "y") != 0)
{
break; // 如果输入不是"是",则退出循环
}
}
return 0;
}
void 抽卡()
{
int a = rand() % 1000 + 1;
if (purple_count == 9)
{
a = 1; // 紫色卡牌
}
else if (yellow_count == 89)
{
a = 104; // 黄色卡牌
}
else if (purple_count == 9 && yellow_count == 99)
{
a = 101; // 黄色卡牌
}
if (a <= 71)
{
printf("\033[lbk]35m抽卡结果为3\033[lbk]0m\n"); // 紫色
purple++;
purple_count = 0; // 紫色计数器加1
}
else if (a <= 115 && a >= 101)
{
printf("\033[lbk]33m抽卡结果为10\033[lbk]0m\n"); // 黄色
yellow++;
yellow_count = 0; // 紫色计数器清零
}
else
{
printf("\033[lbk]34m抽卡结果为1\033[lbk]0m\n"); // 蓝色
blue++;
}
count++; // 计数器加1
purple_count++; // 紫色计数器加1
yellow_count++; // 黄色计数器加1
}
#include <stdlib.h>
#include <time.h>
#include <string.h>
#pragma warning(disable : 4996)
void 抽卡();
int chances = 0; // 定义变量
int blue = 0; // 声明为全局变量
int purple = 0; // 声明为全局变量
int yellow = 0; // 声明为全局变量
int count = 0;
int purple_count = 0;
int yellow_count = 0;
int main()
{
srand(time(NULL)); // 移动到 main 的开头
char str[lbk]10[rbk]; // 为str分配足够的内存
char 是否再来一局[lbk]10[rbk]; // 添加分号
while (1) // 使用循环代替goto
{
printf("十连(输入10)/单抽(输入1)\n");
scanf("%s", str);
if (strcmp(str, "10") == 0)
{
for (int i = 0; i < 10; i++)
{
抽卡();
}
}
else if (strcmp(str, "1") == 0)
{
抽卡();
}
else
{
printf("输入无效,请输入'10'或'1'.\n");
continue; // 继续循环
}
printf("总抽数:%d\n", count);
printf("蓝色卡牌:%d\n", blue);
printf("紫色卡牌:%d\n", purple);
printf("黄色卡牌:%d\n", yellow);
printf("总计获得积分:%d\n", blue * 1 + purple * 3 + yellow * 10);
printf("你想再玩一次吗(输入y/n)\n"); // 添加换行
scanf("%s", 是否再来一局); // 使用半角引号
if (strcmp(是否再来一局, "y") != 0)
{
break; // 如果输入不是"是",则退出循环
}
}
return 0;
}
void 抽卡()
{
int a = rand() % 1000 + 1;
if (purple_count == 9)
{
a = 1; // 紫色卡牌
}
else if (yellow_count == 89)
{
a = 104; // 黄色卡牌
}
else if (purple_count == 9 && yellow_count == 99)
{
a = 101; // 黄色卡牌
}
if (a <= 71)
{
printf("\033[lbk]35m抽卡结果为3\033[lbk]0m\n"); // 紫色
purple++;
purple_count = 0; // 紫色计数器加1
}
else if (a <= 115 && a >= 101)
{
printf("\033[lbk]33m抽卡结果为10\033[lbk]0m\n"); // 黄色
yellow++;
yellow_count = 0; // 紫色计数器清零
}
else
{
printf("\033[lbk]34m抽卡结果为1\033[lbk]0m\n"); // 蓝色
blue++;
}
count++; // 计数器加1
purple_count++; // 紫色计数器加1
yellow_count++; // 黄色计数器加1
}