颜色有那么亿点点问题,有没有大佬帮忙改改

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
const string g="";
#define red "\e[31m"
#define green "\e[32m"
#define blue "\e[34m"
#define yellow "\e[33m"
#define black "\e[0m"
#define sky "\e[36m"
#define purple "\e[35m"
#define normal "\e[0m"
#define clearline "\e[K"
#define clear system("cls");
string a[21]={"大吉","中吉","中吉","小吉","小吉","小吉","中平","中平","中平","中平","凶","凶","凶","中凶","大凶","大奖励","关机","万事皆宜","宇宙满级凶","宇宙满级吉","万事皆不宜"};
string j[21]={"上洛谷:\n      你谷日爆","切水题:\n      被抓抄题解","水讨论区:\n      与他人吵架一起禁言","请教问题:\n      被当作水帖禁言","纳财:\n      今天并没有财运","研究C++:\n      脑子干废了","学新算法:\n      怎么也学不会","抄题解:\n      被棕名","爆肝:\n      肝都废了,还没搞完","出行:\n      路途十分坎坷","装蒟蒻:\n      被看穿","熬夜:\n      通宵干不完","开电脑:\n      意外的死机故障不可避","膜拜大神:\n      被大神鄙视","背课文:\n      记忆力只有50字节","看视频网站:\n      被制裁","玩我的世界:\n      转角遇到苦力怕","重构代码:\n      越改越乱","放假:\n      就放一天,全是作业","继续完成WA的题:\n      然而变成了TLE,RE","刷题:\n      容易WA"},y[21]={"学新算法:\n      看一遍就懂了","上厕所:\n      想出了题目的解法","上课摸鱼:\n      放松身心","看视屏网站:\n      很开心","开电脑:\n      电脑的状态很好","做题:\n      直接AC","完成WA的题:\n      下一秒就过了","上洛谷:\n      洛谷没有日爆","研究C++:\n      弄清白了","考试:\n      AK全场","做作业:\n      全都会","交友:\n      友谊地久天长","切水题:\n      通过数猛涨","玩我的世界:\n      下界挖到远古残骸","刷题:\n      成为虐题狂魔","出公开赛:\n      rated,评价很高","骗分:\n      \"不可以,总司令\"然后得一半分","放假:\n      自由自在的一个假期","膜拜大神:\n      接受神犇光芒的照耀","造数据:\n      严谨数据,经久耐用","祭祀:\n      获得祖宗的庇护"};
char* gettime()
{
	time_t now = time(nullptr);
	return ctime(&now);
}
void slowprint(double msec,string test,string color="normal")
{
	if(color=="red")cout<<red;
	else if(color=="green")cout<<green;
	else if(color=="blue")cout<<blue;
	else if(color=="purple")cout<<purple;
	else if(color=="yellow")cout<<yellow;
	else if(color=="sky")cout<<sky;
	else if(color=="black")cout<<black;
	for(int i=0;i<test.length();i++)
	{
		cout<<test[i];
		Sleep(msec);
	}
}
void nb()
{
	for(int dsf=1;dsf<=5;dsf++)
	{
		system("color 10");
		Sleep(100);
		system("color 10");
		Sleep(100);
		system("color 30");
		Sleep(100);
		system("color 40");
		Sleep(100);
		system("color 10");
		Sleep(100);
		system("color 60");
		Sleep(100);
		system("color 70");
		Sleep(100);
		system("color 80");
		Sleep(100);
		system("color 90");
		Sleep(100);
		system("color 00");
		Sleep(100);
		system("color a0");
		Sleep(100);
		system("color b0");
		Sleep(100);
		system("color c0");
		Sleep(100);
		system("color d0");
		Sleep(100);
		system("color e0");
}
}
void getevent(string s)
{
	srand(time(0));
	int a1=rand()%21;
	int a2=rand()%21;
	int b1=rand()%21;
	int b2=rand()%21;
	while(a1==a2)a1=rand()%21;
	while(b1==b2)b2=rand()%21;
	if(s=="万事皆宜"||s=="大奖励"||s=="隐藏:&10000钻石块")
	{
		cout<<yellow;
		cout<<"宜:\n";
		slowprint(50,"   "+y[a1]+"\n");
		if(s=="万事皆宜")
		{
			slowprint(50,"   "+y[rand()%21]+"\n");
		}
		else
		{
			slowprint(50,"万事皆宜\n");
		}
	}
	else if(s=="万事皆不宜"||s=="宇宙满级凶")
	{
		system("color 8");
		slowprint(50,"今天好像没有什么适合做的事情呢...\n");
		cout<<"忌:\n";
		cout<<"   "+j[b1]+"\n"+"   "+j[b2]+"\n";
		if(s=="万事皆不宜")
		{
			slowprint(50,"忌:\n   "+j[rand()%21]+"\n");
			slowprint(50,"忌:\n   "+j[rand()%21]+"\n");
		}
	}
	else if(s=="大吉")
	{
		cout<<red;
		slowprint(50,"宜\n");
		slowprint(50,"   "+y[a1]+"\n");
		slowprint(50,"万事皆宜\n");
	}
	else if(s=="中吉"||s=="小吉"||s=="中平"||s=="凶"||s=="中凶")
	{
		if(s=="中吉"||s=="小吉")cout<<red;
		else if(s=="中平")cout<<green;
		else system("color 8");
		slowprint(50,"宜:\n");
		slowprint(50,"   "+y[a1]+"\n"+"   "+y[a2]+"\n");
		slowprint(50,"忌:\n");
		slowprint(50,"   "+j[b2]+"\n"+"   "+j[b1]+"\n");
	}
	else if(s=="大凶")
	{
		system("color 8");
		slowprint(50,"万事皆不宜...\n");
		cout<<"忌:\n";
		cout<<"   "+j[b2]+"\n"+"   "+j[b1]+"\n";
	}
}
int getRP(int n)
{
	if(n==0)return rand()%3+8;
	else if(n==1||n==2)return rand()%3+6;
	else if(n>=3&&n<=5)return rand()%2+5;
	else if(n>=6&&n<=9)return rand()%4+1;
	else if(n>=10&&n<=12)return rand()%1-1;
	else if(a[n]== "中凶")return rand()%3-2;
	else if(a[n]=="大凶")return rand()%3-4;
	else if(a[n]=="大奖励")return 10;
	else if(a[n]=="关机")return -1000;
	else if(a[n]=="隐藏:&苦力怕×114514")return -10;
	else if(a[n]=="宇宙满级凶")return -10;
	else if(a[n]=="宇宙满级吉")return 10;
	else if(a[n]=="万事皆不宜")return -10;
	else return 114514;
}
void write(string test)
{
	
	for(int i=0;i<test.length();i++)
	{
		if(test[i]!='&'&&test[i]!='^'&&test[i]!='~'&&test[i]!='$'&&test[i]!='/')cout<<test[i];
		else
		{
			switch(test[i])
			{
				case '&':Sleep(1000);break;
				case '^':Sleep(500);break;
				case '~':Sleep(200);break;
			case '/':
				{
					Sleep(50);
					break;
				}
			case '$':
				{
					cout<<endl;
					system("pause");
				}
			}
		}
	}
}
int get()
{
	
	srand(time(0));
	return rand()%21;
}
long long to_int(string s)
{
	
	long long sum=0;
	for(int i=s.size()-1;i>=0;i--)
	{
		sum+=int(s[i]-'0')*pow(10,i);
	}
	return sum;
}
int ok(string s)
{
	if(s.find("吉"))return 1;
	else if(s.find("凶"))return 2;
	else return 3;
}
void picking(int n)
{
	
	int vv;
	for(int i=1;i<=100;i++)
	{
		vv=rand()%20+1;
		clear
		cout<<a[vv];
		Sleep(i);
	}
	Sleep(1000);
	clear
	slowprint(1,"=======================================================================================================================");
	Sleep(500);
	cout<<"\n";
	string t=gettime();
	t.erase(11,16);
	cout<<t<<endl;
	write("\n你的运势是~.~.~.^\n");
	int color=ok(a[vv]);
	switch(color)
	{
		case 1:cout<<a[vv]+"!"<<black;break;
		case 2:cout<<a[vv]+"!"<<black;break;
		case 3:cout<<a[vv]+"!"<<black;break;
	}
	cout<<"\n";
	if(a[vv]=="大奖励")nb();
	if(a[vv]=="关机")
	{
		slowprint(100,"..................................");
		system("shutdown -s -t 60");
	}
	cout<<endl;
	getevent(a[vv]);
	cout<<endl;
	system("pause");
	cout<<normal<<"\n你今天的RP是:\n";
	write("~"+to_string(getRP(vv)));
	cout<<endl;
	cout<<endl;
	system("pause");
	system("color f");
}
#define shit GetAsyncKeyState(VK_MENU)?1:0
#define exit GetAsyncKeyState(VK_ESCAPE)?1:0
void start()
{
	
	cout<<"按Alt开始抽签,esc结束";
	{
		
		while(1)
		{
			
			if(shit)picking(get());
			
			if(exit)
			{
				
				clear
				Sleep(1000);
				slowprint(50,"..........");
				cout<<"\n\n\n";
				return;
			}
			
			Sleep(1000);
			clear
			cout<<"按Alt开始抽签,esc结束";
		}
	}
}
int main()
{
	start();
	return 0;
}
2 个赞

信友队论坛上 @栗子酱 已经发过模拟洛谷打卡的帖子了,你可以去看看她的

2 个赞

这个倒确实,我看看能不能找到

2 个赞