随机说话噶啦格木赛季代码

太他妈长了就单独开了一个来存。

你需要将第二份代码命名为“数值一览”后编译运行,两份代码需要在同一目录下。

按理来说作者热情衰退之前这个东西会一直更新,然后你可能会拿到有一堆 bug 的代码。

有一些关键情节会需要你用 Enter 过,这是仿照 gal 做出的设计。

#include<bits/stdc++.h>
#include<windows.h>
#define int long long
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1 : 0)
using namespace std;
mt19937 ran(time(0));
int rd(int l,int r){
	return 1ull*ran()*998244353%(r-l+1)+l;
}
bool check(double gai){
	if(gai>=1){
		return 1;
	}
	return rd(1,1e8)<gai*1e8;
}
void tored(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
}
void togreen(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
}
void toblue(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
}
void toyellow(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
}
void topurple(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE);
}
void tocyan(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE);
}
void towhite(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |	FOREGROUND_GREEN | FOREGROUND_BLUE);
}
/*辅助变量区:
没事别动*/
int flag=0,tuiflag,juanflag,xueflag,flagfs,zkflag,jiyuflag;
int fangsiz,dongsiz,mingsiz,xingsiz,fucisiz,liansiz;
int dengdai=100,dadeng=200,shijiandeng=300;
int yudengdai=0,yudadeng=0,yushijiandeng=300;
int fasesiz,niansiz,daxisiz,tian1siz,tian0siz;
/*词库区:
1. 要添加词直接在数组中补充
2. 特殊的,如果名词和形容词中都有“我们”,则名词库中的“我们”应放在第一个*/
string fang[]={"女厕所","童话","传说","原神","机房","卧室","厕所","餐桌","丁子博","破中学","阿里巴巴","天安门","热带雨林","考场","图书馆","田心屋","多功能室"};//地点
string dong[]={"穿上","闯入","斗败","开动","斗败","杀死","进入","变成","盯着","歌颂","奴役"};//动词
string ming[]={"蓝精灵","格格巫","老太婆","王一乐","丁子博","肖子卓","丁一宸","奶龙","张轩程","丛雨","0d00","吕明栩","硫酸铜","陈和骏","picha"};//名词
string xing[]={"我们","招笑","可爱的","没母的","美味的","狗日的","匮乏的","爆炸的","稀有的","甘甜的","匆忙的","努力的","唐氏","幼刀"};//形容词
string fuci[]={"自由自在地","善良勇敢地","齐心合力","活蹦乱跳地","来回摇摆地","狼心狗肺地","反复不停地","大快人心地","一不小心","开着小米苏7","忍不住","用力"};//副词
string strfase[]={"绿","黄","黑","白","粉","蓝"};
string strdaxi[]={"贫","中","巨"};
string strnian[]={"萝莉","学妹","学姐","熟女"};
string strtian1[]={"天然呆","傲娇","激进","懒散","炫压抑","病娇"    ,"专一"};
string strtian0[]={"高冷"  ,"舔勾","激进","懒散","炫压抑","心情感应","专一","狗修金"};
string strjiezhuan[]={"专一","心灰意冷","重整旗鼓"};
string strjiebing[]={"病娇","????"};
int fase[100000],nian[100000],daxi[100000],kunb[100000],zhur[100000],jiezhuan[100000],zhi[100000],vis[100000];
int jiebing[100000];
vector<int> bing,pkun[100000],pzhu[100000],wenh,tian[100000];
vector<string> si;
string yuan[100000];
char lujingtmp[100000];
string lujing;
bool xory[100000];//0为女,1为男。 
double likexiuadd[1000][1000],likexiudel[1000][1000],like[1000][1000],xiuyao[100000],xiujie[100000];
string zxc;
vector<int> toxy[2],rlose;
vector<pair<int,int>> rwin;
int xsiz[2];
void deng(int sb){
	if(sb>=250){
		while(!KEY_DOWN(VK_RETURN)){}
		while(KEY_DOWN(VK_RETURN)){}
	}
}
//#define Sleep deng
/*随机抽词函数区:
核心部分!*/
string sdi(){
	return fang[ran()%fangsiz];
}
string sdo(){
	return dong[ran()%dongsiz];
}
string sxi(){
	int t=ran()%xingsiz;
	return xing[t];
}
string sfu(){
	return fuci[ran()%fucisiz];
}
string smi();
void szh(int no){
	if(!(ran()%no)){
		cout<<sxi();
		Sleep(dengdai);
	}
	cout<<smi();
	Sleep(dengdai);
}
void swe(int no){
	flag=1;
	if(!(ran()%no)){
		cout<<"像"<<smi()<<"似的";
		Sleep(dengdai);
		if(!(ran()%2)){
			flag=0;
			return;
		}
	}
	if(!(ran()%no)){
		cout<<"进入"<<sdi()<<"中";
		Sleep(dengdai);
		if(!(ran()%2)){
			flag=0;
			return;
		}
	}
	if(!(ran()%no)){
		cout<<sfu();
		Sleep(dengdai);
	}
	cout<<sdo();
	Sleep(dengdai);
}
void sbi(int no){
	if(!(ran()%no)){
		cout<<sxi();
		Sleep(dengdai);
	}
	cout<<smi();
	Sleep(dengdai);
}
string smi(){
	int x=ran()%mingsiz;
	while(vis[x]){
		x=ran()%mingsiz;
	}
	return ming[x];
}
string xb(int x){
	return xory[x]?"男":"女";
}
void shan(int x){
	vis[x]=1;
	for(int i=0;i<(int)bing.size();i++){
		if(bing[i]==x){
			bing.erase(bing.begin()+i);
			break;
		}
	}
	for(int i=0;i<(int)wenh.size();i++){
		if(wenh[i]==x){
			wenh.erase(wenh.begin()+i);
			break;
		}
	}
	for(int i=0;i<(int)toxy[xory[x]].size();i++){
		if(toxy[xory[x]][i]==x){
			toxy[xory[x]].erase(toxy[xory[x]].begin()+i);
			xsiz[xory[x]]--;
			break;
		}
	}
}
string bu(string t,int len){
	int siz=t.size();
	for(int i=siz+1;i<=len;i++){
		t=' '+t;
	}
	return t;
}
void xiubiao(){
	Sleep(1000);
	cout<<"当前攻防加成表:"<<endl;
	cout<<bu(" ",10)<<" ";
	for(int i=0;i<xsiz[0];i++){
		cout<<bu(ming[toxy[0][i]],10)<<" ";
	}
	cout<<endl;
	for(int i=0;i<xsiz[1];i++){
		cout<<bu(ming[toxy[1][i]],10)<<" ";
		for(int j=0;j<xsiz[0];j++){
			double v0=likexiuadd[toxy[1][i]][toxy[0][j]],v1=likexiuadd[toxy[0][j]][toxy[1][i]];
			toyellow();
			if(v0<3) tored();
			if(v0<2) towhite();
			if(v0<1) toblue();
			printf(" %.2lf",v0);
			towhite();
			cout<<"/";
			toyellow();
			if(v1<3) tored();
			if(v1<2) towhite();
			if(v1<1) toblue();
			printf("%.2lf ",v1);
			towhite();
		} 
		cout<<"\n";
	}
	Sleep(1000);
}
void jiebang(int x){
	for(auto y:pkun[x]){
		if(vis[y]||kunb[y]==-1) continue;
		kunb[y]=-1;
		jiezhuan[y]++;
		tored();
		cout<<ming[y]+"buff 专一 转化为 心灰意冷!\n";
		towhite();
		Sleep(shijiandeng);
		assert(jiezhuan[y]==1);
		xiuyao[y]*=0.8;
		for(auto z:toxy[xory[y]^1]){
			likexiuadd[z][y]*=0.8;
			likexiuadd[y][z]*=0.8;
		}
		zhi[y]=200;
	}
	tored();
	for(auto y:pzhu[x]){
		if(vis[y]) continue;
		cout<<"与此同时,另一边:";
		Sleep(shijiandeng);
		cout<<"「"+ming[y]+"」:月亮啊 只有你 还是一成不变啊…\n";
		deng(shijiandeng);
		cout<<"「"+ming[y]+"」:主人已经离我而去了 既然这样…\n";
		deng(shijiandeng);
		cout<<ming[y]+" 在一个满月的夜跳入河中,身体随着河水飘去……\n";
		deng(shijiandeng);
//		ming[y]="尸体";
		togreen();
		cout<<"角";
		toblue();
		cout<<"色";
		toyellow();
		cout<<"阵";
		topurple();
		cout<<"亡";
		tocyan();
		cout<<"提";
		tored();
		cout<<"示";
		cout<<'\n';
		shan(y);
		jiebang(y);
	}
	towhite();
}
/*从句区:
和词库区一样,但要注意一一对应哦!*/
string lian1[]={"可惜"          ,"在"    ,"只要"    ,"只有"  ,"因为"  ,"在"}; 
string lian2[]={",不然Ta就不会","时,Ta",",Ta就会","Ta才能","所以Ta","后,不久Ta就"}; 
void cka(int op){
	cout<<lian1[op];
}
void cji(int op){
	cout<<lian2[op];
}
int tdengdai=dengdai,tdadeng=dadeng,tshijiandeng=shijiandeng;
void panduan(){
	togreen();
	if(KEY_DOWN('W')){
		while(KEY_DOWN('W'));
		cout<<"启动超载!\n";
		dengdai=0;
		dadeng=0;
		shijiandeng=0;
		Sleep(1000);
	}
	if(KEY_DOWN('R')){
		while(KEY_DOWN('R'));
		cout<<"暂停...\n";
		string sb="";cin>>sb;
		cout<<"继续运行!\n";
	}
	if(KEY_DOWN('T')){
		while(KEY_DOWN('T'));
		cin>>dengdai>>dadeng>>shijiandeng;
		Sleep(1000);
	}
	if(KEY_DOWN('E')){
		while(KEY_DOWN('E'));
		cout<<"速度已重置!\n";
		dengdai=tdengdai;
		dadeng=tdadeng;
		shijiandeng=tshijiandeng;
		Sleep(1000);
	}
	if(KEY_DOWN('Q')){
		while(KEY_DOWN('Q'));
		cout<<"已启用预设速度!\n";
		dengdai=yudengdai;
		dadeng=yudadeng;
		shijiandeng=yushijiandeng;
		Sleep(1000);
	}
	towhite();
}
void pan(){
	for(int x=0;x<xsiz[0];x++){
		for(int y=0;y<xsiz[1];y++){
			if(x>=xsiz[0]){
				break;
			}
			if(like[toxy[0][x]][toxy[1][y]]>100&&like[toxy[1][y]][toxy[0][x]]>100){
				tocyan();
				cout<<"恭喜"<<ming[toxy[0][x]]<<" "<<ming[toxy[1][y]]<<"成为人win!\n";
				towhite();
				rwin.push_back({toxy[0][x],toxy[1][y]});
				int tx=toxy[0][x],ty=toxy[1][y];
				shan(tx);
				shan(ty);
				jiebang(tx);
				jiebang(ty);
				y--;
			}
		}
	}
	for(int x=0;x<xsiz[0];x++){
		int flag=0;
		for(int y=0;y<xsiz[1];y++){
			if(like[toxy[0][x]][toxy[1][y]]>0||like[toxy[1][y]][toxy[0][x]]>0){
				flag=1;
			}
		}
		if(!flag){
			tored();
			cout<<ming[toxy[0][x]]<<"成为人lose,为他默哀!\n";
			rlose.push_back(toxy[0][x]);
			int tx=toxy[0][x];
			shan(tx);
			jiebang(tx);
			towhite();
			x--;
		}
	}
	for(int x=0;x<xsiz[1];x++){
		int flag=0;
		for(int y=0;y<xsiz[0];y++){
			if(like[toxy[1][x]][toxy[0][y]]>0||like[toxy[0][y]][toxy[1][x]]>0){
				flag=1;
			}
		}
		if(!flag){
			tored();
			cout<<ming[toxy[1][x]]<<"成为人lose,为他默哀!\n";
			rlose.push_back(toxy[1][x]);
			int tx=toxy[1][x];
			shan(tx);
			jiebang(tx);
			towhite();
			x--;
		}
	}
	return;
}
void add(int x,int y,double w){
	like[x][y]+=w*likexiuadd[x][y];
}
void del(int x,int y,double w){
	like[x][y]-=w*likexiudel[x][y];
}
void shijiansui(int x,int y,int opt){
	if(opt==0){
		toyellow();
		cout<<ming[x]+"在"+sdi()+"中哦那你被"+ming[y]+"发现!\n"; 
		add(y,x,rd(3,7)+5);
		del(x,y,rd(3,7)+5);
		towhite();
	}
	if(opt==1){
		toyellow();
		cout<<ming[x]+"邀请"+ming[y]+"进入轻音乐同好会被拒!\n";
		add(y,x,rd(3,7));
		del(x,y,rd(3,7));
		towhite();
	}
	if(opt==2){
		togreen();
		cout<<ming[x]+"和"+ming[y]+"在"+sdi()+"中吃盐烤香鱼!\n";
		add(x,y,rd(3,7));
		add(y,x,rd(3,7));
		towhite();
	}
	if(opt==3){
		togreen();
		cout<<ming[x]+"和"+ming[y]+"在"+sdi()+"中和同学看电影只有双人位了!\n";
		add(x,y,rd(3,7)+5);
		add(y,x,rd(3,7)+5);
		towhite();
	}
	if(opt==4){
		tored();
		cout<<ming[x]+"吃了"+ming[y]+"家乡"+sdi()+"中的糖果后看到了极光!\n";
		del(x,y,rd(3,7));
		del(y,x,rd(3,7));
		towhite();
	}
	if(opt==5){
		tored();
		cout<<ming[x]+"在"+ming[y]+"家中发现了【数据删除】并要求一同分享!\n"; 
		del(x,y,rd(3,7)+5);
		del(y,x,rd(3,7)+5);
		towhite();
	}
	pan();
}
void xuan(){
	Sleep(shijiandeng);
	cout<<"结 ";
	Sleep(shijiandeng);
	cout<<"果 ";
	Sleep(shijiandeng);
	cout<<"如 ";
	Sleep(shijiandeng);
	cout<<"何 ";
	Sleep(shijiandeng);
	cout<<"?\n";
	Sleep(shijiandeng);
}
void zhuiqiu(int x,int y,int opt){
	toblue();
	if(opt==5){
		if(like[y][x]<=90){
			opt--;
			goto nxt;
		}
		cout<<ming[x]+"在"+sdi()+"中邀请"+ming[y]+"运动! \n";
		cout<<ming[y]<<"的好感度为:"<<like[y][x]<<'\n';
		xuan();
		if(rd(90,100)<like[y][x]||check(xiujie[y])){
			cout<<ming[y]+"欣然接受!\n";
			like[y][x]+=rd(721,114514);
			like[x][y]+=rd(721,114514);
		}
		else{
			cout<<ming[y]+"欧拉欧拉!\n";
			like[y][x]-=rd(50,60);
			like[x][y]-=rd(50,60);
		}
	}
	nxt:;
	if(opt==4){
		if(like[y][x]<=65){
			opt--;
			goto tnx;
		}
		cout<<ming[x]+"在"+sdi()+"中诱惑"+ming[y]+"! \n";
		cout<<ming[y]<<"的好感度为:"<<like[y][x]<<'\n';
		xuan();
		if(rd(70,80)<like[y][x]||check(xiujie[y])){
			cout<<ming[y]+"不予回复!\n";
			like[y][x]+=rd(10,40);
			like[x][y]+=rd(20,30);
		}
		else{
			cout<<ming[y]+"进行臭骂!\n";
			like[y][x]-=rd(-10,20);
			like[x][y]-=rd(  5,10);
		}
	}
	tnx:;
	if(opt==3){
		if(like[y][x]<=55){
			opt--;
			goto txn;
		}
		cout<<ming[x]+"在"+sdi()+"中对"+ming[y]+"说:“瓦塔西哦哦那你哦迷迭哭啦塞!”\n";
		cout<<ming[y]<<"的好感度为:"<<like[y][x]<<'\n';
		xuan();
		if(rd(60,90)<like[y][x]||check(xiujie[y])){
			cout<<ming[y]+"勉强接受!\n";
			like[y][x]+=rd(-10,30);
			like[x][y]+=rd( 20,55);
		}
		else{
			cout<<ming[y]+"拼命拒绝!\n";
			like[y][x]-=rd(20,40);
			like[x][y]-=rd( 5,15);
		}
	}
	txn:;
	if(opt==2){
		if(like[y][x]<=45){
			opt--;
			goto xnt;
		}
		cout<<ming[x]+"向"+ming[y]+"在"+sdi()+"中表白!\n";
		cout<<ming[y]<<"的好感度为:"<<like[y][x]<<'\n';
		xuan();
		if(rd(50,65)<like[y][x]||check(xiujie[y])){
			cout<<ming[y]+"欣然接受!\n";
			like[y][x]+=rd(30,60);
			like[x][y]+=rd(30,60);
		}
		else{
			cout<<ming[y]+"委婉拒绝!\n";
			like[y][x]-=rd(20,30);
			like[x][y]-=rd(10,20);
		}
	}
	xnt:;
	if(opt==1){
		if(like[y][x]<=25){
			opt--;
			goto ntx;
		}
		cout<<ming[x]+"在"+sdi()+"中给"+ming[y]+"“饭后甜品”!\n";
		cout<<ming[y]<<"的好感度为:"<<like[y][x]<<'\n';
		xuan();
		if(rd(30,60)<like[y][x]||check(xiujie[y])){
			cout<<ming[y]+"欢欣接受!\n";
			like[y][x]+=rd(35,50);
			like[x][y]+=rd(35,50);
		}
		else{
			cout<<ming[y]+"羞涩回避!\n";
			like[y][x]-=rd(-10,20);
			like[x][y]-=rd(  5,15);
		}
	}
	ntx:;
	if(opt==0){
		cout<<ming[x]+"邀请"+ming[y]+"在"+sdi()+"中吃芭菲!\n";
		cout<<ming[y]<<"的好感度为:"<<like[y][x]<<'\n';
		xuan();
		if(rd(1,40)<like[y][x]||check(xiujie[y])){
			cout<<ming[y]+"欣然接受!\n";
			like[y][x]+=rd(15,25);
			like[x][y]+=rd(15,25);
		}
		else{
			cout<<ming[y]+"果断拒绝!\n";
			like[y][x]-=rd(10,20);
			like[x][y]-=rd(10,20);
		}
	}
	towhite();
	pan();
}
double calc(int a){
	double x=a;
	if(x>100){
		return 1;
	}
	if(x>80){
		return (1.5*x-50.0)/100.0;
	}
	if(x>60){
		return 70.0/100.0;
	}
	if(x>0){
		return (x+10.0)/100.0;
	}
	if(x>-100){
		return (x*0.1+10.0)/100.0;
	}
	return 0; 
}
vector<int> best;
int likebest(int x){ 
	best.clear();
	int mx=-1e18;
	for(auto i:toxy[xory[x]^1]){
		if(like[x][i]>mx){
			best.clear();
			mx=like[x][i];
			best.push_back(i);
		}
		else if(like[x][i]==mx){
			best.push_back(i);
		}
	}
	return best[rd(0,best.size()-1)];
}
bool nozhur(){
	int flag=0;
	for(auto j:toxy[1]){
		if(zhur[j]==-1){
			flag=1;
			break;
		}
	}
	return flag;
}
void tonxt(){
	for(int i=0;i<mingsiz;i++){
		for(auto j:tian[i]){
			if(j==6){
				zhi[i]--;
				if(zhi[i]==0){
					jiezhuan[i]++;
					toyellow();
					cout<<ming[i]+"buff 心灰意冷 转化为 重整旗鼓!\n";
					xiuyao[i]*=1.5;
					for(auto k:toxy[xory[i]^1]){
						likexiuadd[k][i]*=1.5;
						likexiuadd[i][k]*=1.5;
					}
					towhite();
					Sleep(shijiandeng);
					assert(jiezhuan[i]==2);
					zhi[i]=1e18;
				}
				break;
			}
		}
	}
}
void op(int flag=0){
	Sleep(shijiandeng*3);
	deng(shijiandeng);
	system("cls");
	for(int i=0;i<mingsiz;i++){
		cout<<ming[i];
		if(vis[i]) cout<<"已离开";
		cout<<":\n";
		cout<<"性别:"<<(xory[i]?"女":"男")<<"\n";
		cout<<(xory[i]?"属性:":"喜好:")+strfase[fase[i]]+"毛"+strdaxi[daxi[i]]+strnian[nian[i]]<<'\n';
		cout<<"天赋:";
		if(xory[i]==0){
			if(!tian[i].size()) cout<<"无";
			for(auto x:tian[i]){
				if(x==6){
					cout<<strjiezhuan[jiezhuan[i]]<<" ";
				}
				else{
					cout<<strtian0[x]<<" ";
				}
			}
		}
		else{
			if(!tian[i].size()) cout<<"无";
			for(auto x:tian[i]){
				if(x==6){
					cout<<strjiezhuan[jiezhuan[i]]<<" ";
				}
				else{
					cout<<strtian1[x]<<" ";
				}
			}
		}
		cout<<'\n';
		cout<<"邀请概率修正:"<<min(1.0,xiuyao[i])<<'\n';
		cout<<"接受概率修正:"<<xiujie[i]<<'\n';
		deng(shijiandeng);
		system("cls");
	}
	xiubiao();
	Sleep(shijiandeng*3);
	deng(shijiandeng);
	system("cls");
}
signed main(){
/*解除freopen的注释会让代码直接输出文件,保存到哪里输出到哪里*/
//	freopen("蓝精灵知波.txt","w",stdout); 
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |	FOREGROUND_GREEN | FOREGROUND_BLUE);
	fangsiz=sizeof(fang)/8,dongsiz=sizeof(dong)/8,mingsiz=sizeof(ming)/8,xingsiz=sizeof(xing)/8,fucisiz=sizeof(fuci)/8,liansiz=sizeof(lian1)/8;
	fasesiz=sizeof(strfase)/8,niansiz=sizeof(strnian)/8,daxisiz=sizeof(strdaxi)/8,tian1siz=sizeof(strtian1)/8,tian0siz=sizeof(strtian0)/8;
	system("cls");
	cout<<"快捷键:\n";
	cout<<" Q:使用预设速度\n";
	cout<<" W:炒鸡加速\n";
	cout<<" E:重置为最初速度\n";
	cout<<" R:暂停(随便打个什么字母后enter继续)\n";
	cout<<" T:输入速度\n" ;
	for(int i=0;i<mingsiz;i++) yuan[i]=ming[i];
/*参数区:
1. 目前只有从句频率是在控制台中输入的,其他参数需要在这里改源码
2. 当变量的数值为 x 时,一回合触发对应事件的概率为 1/x */
	for(int i=0;i<mingsiz;i++){
		xory[i]=ran()%2;//0为男,1为女。 
		toxy[xory[i]].push_back(i);
	}
	xsiz[0]=toxy[0].size();
	xsiz[1]=toxy[1].size();
	for(int i=0;i<mingsiz;i++){
		fase[i]=rd(0,fasesiz-1);
		daxi[i]=rd(0,daxisiz-1);
		nian[i]=rd(0,niansiz-1);
		kunb[i]=-1;
		zhur[i]=-1;
		zhi[i]=1e18;
	}
	for(int i=0;i<xsiz[0];i++){
		for(int j=0;j<xsiz[1];j++){
			int nan=toxy[0][i],nv=toxy[1][j];
			like[nan][nv]=rd(20,40);
			like[nv][nan]=rd(20,40);
			likexiuadd[nan][nv]=1;
			likexiuadd[nv][nan]=1;
			likexiudel[nan][nv]=1;
			likexiudel[nv][nan]=1;
			if(fase[nv]==fase[nan]) likexiuadd[nan][nv]*=1.1;
			if(daxi[nv]==daxi[nan]) likexiuadd[nan][nv]*=1.2;
			if(nian[nv]==nian[nan]) likexiuadd[nan][nv]*=1.2;
		}
	}
	for(int i=0;i<mingsiz;i++){
		if(check(0.7)){
			int fi=rd(0,xory[i]?tian1siz-1:tian0siz-1);
			tian[i].push_back(fi);
			if(check(0.5)){
				int se=rd(0,xory[i]?tian1siz-1:tian0siz-1);
				while(se==fi) se=rd(0,xory[i]?tian1siz-1:tian0siz-1);
				tian[i].push_back(se);
				if(check(0.3)){
					int th=rd(0,xory[i]?tian1siz-1:tian0siz-1);
					while(th==fi||th==se) th=rd(0,xory[i]?tian1siz-1:tian0siz-1);
					tian[i].push_back(th);
				}
			}
		}
		xiuyao[i]=0.5;
		for(int k=0;k<(int)tian[i].size();k++){
			int opt=tian[i][k];
			if(xory[i]){//女 
				if(opt==0) xiuyao[i]=0;
				if(opt==2) xiuyao[i]*=10;
				if(opt==3) xiuyao[i]*=0.8;
				if(opt==4) xiujie[i]=max(xiujie[i],0.5);
				if(opt==5) bing.push_back(i);
				if(opt==6){
					int j=likebest(i);
					kunb[i]=j;
					pkun[j].push_back(i);
					likexiuadd[j][i]*=1.2;
					likexiuadd[i][j]*=1.2;
				}
				for(auto j:toxy[0]){
					if(opt==0){
						likexiuadd[j][i]*=1.7;
					}
					if(opt==1){
						likexiuadd[j][i]*=0.9;
						likexiuadd[i][j]*=1.1;
					}
					if(opt==3){
						likexiuadd[j][i]*=0.9;
					}
				}
			}
			else{
				if(opt==0) xiuyao[i]*=0.8;
				if(opt==2) xiuyao[i]*=10;
				if(opt==3) xiuyao[i]*=0.8;
				if(opt==4) xiujie[i]=max(xiujie[i],0.5);
				if(opt==5) xiujie[i]=1;
				if(opt==6){
					int j=likebest(i);
					kunb[i]=j;
					pkun[j].push_back(i);
					likexiuadd[j][i]*=1.2;
					likexiuadd[i][j]*=1.2;
				}
				if(opt==7){
					if(!nozhur()){
						tian[i].erase(tian[i].begin()+k);
						k--;
						continue;
					}
					int j=toxy[1][rd(0,xsiz[1]-1)];
					while(zhur[j]!=-1) j=toxy[1][rd(0,xsiz[1]-1)];
					zhur[j]=i;
					pzhu[i].push_back(j);
					xiujie[j]=1;
					xiuyao[j]*=10;
					likexiuadd[j][i]*=1.5;
					likexiuadd[i][j]*=1.5;
				}
				for(auto j:toxy[1]){
					if(opt==0){
						likexiuadd[j][i]*=1.2;
					}
					if(opt==1){
						likexiuadd[j][i]*=0.8;
						likexiuadd[i][j]*=1.2;
					}
					if(opt==3){
						likexiuadd[j][i]*=0.9;
					}
				}
			}
		}
	}
	GetModuleFileName(NULL,lujingtmp,MAX_PATH);
	int lujingsiz=strlen(lujingtmp)-1,zhizhen=lujingsiz;
	while(1){
		if(lujingtmp[zhizhen]=='\\'){
			break;
		}
		zhizhen--;
	}
	for(int i=0;i<=zhizhen;i++){
		lujing+=lujingtmp[i];
	}
	int cong=3,shij=5,zhui=10;
	long long T=1e18;//最多运行回合
	op();
	ShellExecute(NULL, "open", (lujing+"//数值一览.exe").c_str(), NULL, NULL, SW_SHOW);
	while(T--){
		tonxt();
		panduan();
		freopen("勿开启!.0d000721","w",stdout);//这里的代码会在你的电脑上生成记分板,保存到哪里输出到哪里
		cout<<bu("男",10)<<" "<<bu("女",10)<<'\n';
		for(int i=0;i<max(xsiz[0],xsiz[1]);i++){
			cout<<bu(i<xsiz[0]?ming[toxy[0][i]]:zxc,10)<<" "<<bu(i<xsiz[1]?ming[toxy[1][i]]:zxc,10)<<'\n';
		}
		cout<<"好感度:\n";
		cout<<bu(" ",8)<<" ";
		for(int i=0;i<xsiz[0];i++){
			cout<<bu(ming[toxy[0][i]],8)<<" ";
		}
		cout<<'\n';
		for(int i=0;i<xsiz[1];i++){
			cout<<bu(ming[toxy[1][i]],8)<<" ";
			for(int j=0;j<xsiz[0];j++){
				printf(" %3lld/%3lld ",(int)like[toxy[1][i]][toxy[0][j]],(int)like[toxy[0][j]][toxy[1][i]]);
			} 
			cout<<"\n";
		}
		cout<<"属性一览:\n";
		for(int i=0;i<xsiz[0];i++){
			cout<<bu(ming[toxy[0][i]],6)<<" 男,喜好:"<<strfase[fase[toxy[0][i]]]<<"毛"<<strdaxi[daxi[toxy[0][i]]]<<strnian[nian[toxy[0][i]]]<<'\n';
		}
		for(int i=0;i<xsiz[1];i++){
			cout<<bu(ming[toxy[1][i]],6)<<" 女,属性:"<<strfase[fase[toxy[1][i]]]<<"毛"<<strdaxi[daxi[toxy[1][i]]]<<strnian[nian[toxy[1][i]]]<<'\n';
		}
		cout<<"天赋一览:\n";
		for(int i=0;i<xsiz[0];i++){
			cout<<bu(ming[toxy[0][i]],6)<<" 男,天赋:";
			for(auto x:tian[toxy[0][i]]){
				if(x==6){
					cout<<strjiezhuan[jiezhuan[toxy[0][i]]]<<" ";
				}
				else{
					cout<<strtian0[x]<<" ";
				}
			}
			if(!tian[toxy[0][i]].size()){
				cout<<"无";
			}
			cout<<'\n';
		}
		for(int i=0;i<xsiz[1];i++){
			cout<<bu(ming[toxy[1][i]],6)<<" 女,天赋:";
			for(auto x:tian[toxy[1][i]]){
				if(x==6){
					cout<<strjiezhuan[jiezhuan[toxy[1][i]]]<<" ";
				}
				else if(x==5){
					cout<<strjiebing[jiebing[toxy[1][i]]]<<" ";
				} 
				else{
					cout<<strtian1[x]<<" ";
				}
			}
			if(!tian[toxy[1][i]].size()){
				cout<<"无";
			}
			cout<<'\n';
		}
		cout<<"攻防加成:\n";
		cout<<bu(" ",10)<<" ";
		for(int i=0;i<xsiz[0];i++){
			cout<<bu(ming[toxy[0][i]],10)<<" ";
		}
		cout<<'\n';
		for(int i=0;i<xsiz[1];i++){
			cout<<bu(ming[toxy[1][i]],10)<<" ";
			for(int j=0;j<xsiz[0];j++){
				printf(" %.2lf/%.2lf ",likexiuadd[toxy[1][i]][toxy[0][j]],likexiuadd[toxy[0][j]][toxy[1][i]]);
			} 
			cout<<"\n";
		}
		cout<<"邀请概率修正:\n";
		for(int i=0;i<mingsiz;i++){
			if(vis[i]) continue;
			cout<<bu(ming[i],6)<<" "<<min(1.0,xiuyao[i])<<'\n';
		}
		cout<<"接受概率修正:\n";
		for(int i=0;i<mingsiz;i++){
			if(vis[i]) continue;
			cout<<bu(ming[i],6)<<" "<<min(1.0,xiujie[i])<<'\n';
		}
		cout<<"专一关系:\n";
		for(int i=0;i<mingsiz;i++){
			if(vis[i]||kunb[i]==-1) continue;
			cout<<bu(ming[i],6)<<" 对"<<bu(ming[kunb[i]],6)<<"专一"<<'\n';
		}
		cout<<"丛将关系(?):\n";
		for(int i=0;i<mingsiz;i++){
			if(vis[i]||zhur[i]==-1) continue;
			cout<<bu(ming[i],6)<<" 只能接触到"<<bu(ming[zhur[i]],6)<<'\n';
		}
		if(rwin.size()){
			cout<<"人win:\n";
			for(int i=0;i<(int)rwin.size();i++){
				cout<<bu(ming[rwin[i].first],8)<<"   &"<<bu(ming[rwin[i].second],8)<<'\n';
			}
		}
		if(rlose.size()){
			cout<<"人lose:\n";
			for(int i=0;i<(int)rlose.size();i++){
				cout<<bu(ming[rlose[i]],8)<<'\n';
			}
		}
		if(si.size()){
			cout<<"阵亡:\n";
			for(auto i:si){
				cout<<bu(i,8)<<"\n";
			}
		}
		freopen("CON","w",stdout);
		if(CopyFile((lujing+"勿开启!.0d000721").c_str(),(lujing+"数值一览.txt").c_str(),FALSE)){
			if(!xsiz[0]||!xsiz[1]){
				cerr<<"胜利结束!\n";
				return 0;
			}
		}
		freopen("传输枢纽.tmp","w",stdout);
		cout<<"好感度:\n";
		cout<<bu(" ",8)<<" ";
		for(int i=0;i<xsiz[0];i++){
			cout<<bu(ming[toxy[0][i]],8)<<" ";
		}
		cout<<'\n';
		for(int i=0;i<xsiz[1];i++){
			cout<<bu(ming[toxy[1][i]],8)<<" ";
			for(int j=0;j<xsiz[0];j++){
				printf(" %3lld/%3lld ",(int)like[toxy[1][i]][toxy[0][j]],(int)like[toxy[0][j]][toxy[1][i]]);
			} 
			cout<<"\n";
		}
		cout<<"W";
		cout<<"当前攻防加成表:"<<endl;
		cout<<bu(" ",10)<<" ";
		for(int i=0;i<xsiz[0];i++){
			cout<<bu(ming[toxy[0][i]],10)<<" ";
		}
		cout<<endl;
		for(int i=0;i<xsiz[1];i++){
			cout<<bu(ming[toxy[1][i]],10)<<" ";
			for(int j=0;j<xsiz[0];j++){
				double v0=likexiuadd[toxy[1][i]][toxy[0][j]],v1=likexiuadd[toxy[0][j]][toxy[1][i]];
				if(v0<1) cout<<"B";
				else if(v0<2) cout<<"W";
				else if(v0<3) cout<<"R";
				else cout<<"Y";
				printf(" %.2lf",v0);
				cout<<"W";
				cout<<"/";
				if(v1<1) cout<<"B";
				else if(v1<2) cout<<"W";
				else if(v1<3) cout<<"R";
				else cout<<"Y";
				printf("%.2lf ",v1);
				towhite();
			} 
			cout<<"W";
			cout<<"\n";
		}
		freopen("CON","w",stdout);
		if(check(0.05)){
			if(!wenh.size()){
				goto kun;
			}
			int x=wenh[rd(0,wenh.size()-1)],y=likebest(x);
			if(like[y][x]>=0){
				toyellow();
				cout<<"「"+ming[x]+"」:"+ming[y]+",你说,我们这样能走向幸福吗?\n";
				deng(shijiandeng);
				cout<<"「"+ming[y]+"」:我们两情相悦,互相喜爱,还有什么能比这更好的吗?\n";
				deng(shijiandeng);
				cout<<"「"+ming[x]+"」:这样的爱恋之心我早已体会过了,但那次最后的结果却不是如愿的幸福。\n";
				deng(shijiandeng);
				cout<<"「"+ming[y]+"」:我喜欢你,"+ming[x]+"。这还不够吗?\n";
				deng(shijiandeng);
				cout<<"「"+ming[x]+"」:有多喜欢呢?能喜欢到和我一起去死吗?\n";
				deng(shijiandeng);
				cout<<"「"+ming[y]+"」:怎么这么说?我们的美好未来才刚刚开始啊\n";
				deng(shijiandeng);
				cout<<"「"+ming[x]+"」:可我也不年轻了,到现在还这样无所事事的话,人生就已经结束了吧。\n";
				deng(shijiandeng);
				cout<<"「"+ming[y]+"」:……\n";
				deng(shijiandeng);
				cout<<"「"+ming[x]+"」:这样吧,你和我约定,我们相依相伴,直到死亡将我们分离\n";
				deng(shijiandeng);
				tored();
				cout<<ming[x]+"拥住了"+ming[y]+",可手臂的温柔触感并没有到来,取而代之的是一阵强烈的疼痛。\n";
				deng(shijiandeng);
				cout<<"……\n";
				deng(shijiandeng);
				cout<<"一声惨叫倒在地上\n";
				deng(shijiandeng);
				cout<<"随即将刀插入心脏\n";
				deng(shijiandeng);
				cout<<"血液和泪水以陪葬\n";
				deng(shijiandeng);
				cout<<"两人相拥直至死亡\n";
				deng(shijiandeng);
				si.push_back(ming[x]);
				si.push_back(ming[y]);
				shan(x);
				shan(y);
				jiebang(x);
				jiebang(y);
				Sleep(shijiandeng);
				towhite();
			}
		}
		kun:;
		if(check(0.003)){
			if(!bing.size()){
				goto gun;
			}
			int x=bing[rd(0,bing.size()-1)],y=likebest(x),z=likebest(y);
			if(z!=x){
				toyellow();
				if(ran()%2){
					cout<<"「"+ming[x]+"」:是我,是我先,明明都是我先来的……\n";
					deng(shijiandeng);
					cout<<"「"+ming[x]+"」:相遇也好,了解也好,还是喜欢上那家伙也好。…\n";
					deng(shijiandeng);
				}
				else{
					cout<<"「"+ming[x]+"」:为什么会变成这样呢……第一次有了喜欢的人。有了能做一辈子朋友的人。\n";
					deng(shijiandeng);
					cout<<"「"+ming[x]+"」:两件快乐事情重合在一起。而这两份快乐,又给我带来更多的快乐。得到的,本该是像梦境一般幸福的时间……\n";
					deng(shijiandeng);
					cout<<"「"+ming[x]+"」:但是,为什么,会变成这样呢……\n";
					deng(shijiandeng);
				}
				tored();
				cout<<"「"+ming[x]+"」:我不能,让她得手,我会阻止她、我必须阻止她……\n";
				deng(shijiandeng);
				cout<<"病娇"+ming[x]+"杀死了"+ming[z]+"!\n";
				deng(shijiandeng);
				if(ran()%2){
					jiebing[x]++;
					cout<<"「"+ming[x]+"」:软弱的我,已经死了。\n";
					for(int i=0;i<(int)bing.size();i++){
						if(bing[i]==x){
							bing.erase(bing.begin()+i);
							break;
						}
					}
					wenh.push_back(x);
					deng(shijiandeng);
				}
//				ming[z]="尸体";
				si.push_back(ming[z]);
				togreen();
				cout<<"角";
				toblue();
				cout<<"色";
				toyellow();
				cout<<"阵";
				topurple();
				cout<<"亡";
				tocyan();
				cout<<"提";
				tored();
				cout<<"示";
				cout<<'\n';
				int tz=z;
				shan(tz);
				jiebang(tz);
				del(y,x,rd(5,20)); 	
				Sleep(shijiandeng);
				towhite();
			}
		}
		gun:;
		if(!(ran()%shij)&&nozhur()){
			if(ran()%2){
				int x=toxy[0][rd(0,xsiz[0]-1)],y=toxy[1][rd(0,xsiz[1]-1)];
				while(zhur[y]!=-1&&zhur[y]!=x) y=toxy[1][rd(0,xsiz[1]-1)];
				shijiansui(x,y,rd(0,5));
			}
			else{
				int x=toxy[1][rd(0,xsiz[1]-1)],y=toxy[0][rd(0,xsiz[0]-1)];
				while(zhur[x]!=-1&&zhur[x]!=y) x=toxy[1][rd(0,xsiz[1]-1)];
				shijiansui(x,y,rd(0,5));
			}
			Sleep(shijiandeng);
		}
		if(!(ran()%zhui)){
			double sum=0;
			for(int i=0;i<mingsiz;i++){
				if(vis[i]) continue;
				sum+=xiuyao[i];
			}
			if(sum<1e-5){
				goto die;
			}
			while(1){
				int xoy=rd(0,1),who=rd(0,xsiz[xoy]-1),tow=-1;
				if(xoy==0&&!nozhur()) continue;
				if(!check(xiuyao[toxy[xoy][who]])) continue;
				if(zhur[toxy[xoy][who]]!=-1){
					zhuiqiu(toxy[xoy][who],zhur[toxy[xoy][who]],rd(0,5));
					Sleep(shijiandeng);
					break;
				}
				if(kunb[toxy[xoy][who]]!=-1){
					zhuiqiu(toxy[xoy][who],kunb[toxy[xoy][who]],rd(0,5));
					Sleep(shijiandeng);
					break;
				}
				vector<pair<int,int>> val;
				double all=0,sui=rd(0,1e6)*1.0*1e-6,sum=1;
				for(int i=0;i<xsiz[xoy^1];i++){
					int to=toxy[xoy^1][i];
					int w=like[toxy[xoy][who]][to];
					if((zhur[to]!=-1&&zhur[to]!=toxy[xoy][who])){
						continue;
					}
					all+=calc(w);
					val.push_back({w,i});
				}
				int siz=val.size();
				for(int i=0;i<siz;i++){
					int w=val[i].first,x=val[i].second;
					sum-=calc(w)/all;
					if(sui>=sum){
						tow=x;
						break;
					}
				}
				assert(tow!=-1);
				zhuiqiu(toxy[xoy][who],toxy[xoy^1][tow],rd(0,5));
				Sleep(shijiandeng);
				break;
			}
		}
		die:;
		if(!xsiz[0]||!xsiz[1]){
			cerr<<"胜利结束!\n";
			return 0;
		}
		if(!(ran()%cong)){
			int r=ran()%liansiz;
			cka(r);
			szh(5);swe(5);
			if(flag)sbi(5);
			cji(r);
			swe(2);
			if(flag)sbi(3);
			Sleep(dadeng);
			cout<<'\n';
		}
		panduan();
		szh(2);swe(2);
		if(flag)sbi(3);
		cout<<'\n';
		Sleep(dadeng);
	}
	return 0;
}
/*
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |	FOREGROUND_GREEN | FOREGROUND_BLUE);
*/
#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
char s;
void tored(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
}
void togreen(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
}
void toblue(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
}
void toyellow(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN);
}
void topurple(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE);
}
void tocyan(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE);
}
void towhite(){
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED |	FOREGROUND_GREEN | FOREGROUND_BLUE);
}
int main(){
	string file="./传输枢纽.tmp" ;
	ifstream ifs;
	while(1){
		ifs.open(file.c_str(),ios::in);
		while(!ifs.eof()){
			ifs.get(s);
			if(s=='R'){
				tored();
				continue;
			}
			if(s=='G'){
				togreen();
				continue;
			}
			if(s=='B'){
				toblue();
				continue;
			}
			if(s=='Y'){
				toyellow();
				continue;
			}
			if(s=='P'){
				topurple();
				continue;
			}
			if(s=='C'){
				tocyan();
				continue;
			}
			if(s=='W'){
				towhite();
				continue;
			}
			cout<<s;
		}
		ifs.close();
		Sleep(1000);
		system("cls");
		cin.clear();
	}
	return 0;
}
posted @ 2025-11-21 21:57  LEWISAK  阅读(17)  评论(3)    收藏  举报