随机说话噶啦格木赛季代码
太他妈长了就单独开了一个来存。
你需要将第二份代码命名为“数值一览”后编译运行,两份代码需要在同一目录下。
按理来说作者热情衰退之前这个东西会一直更新,然后你可能会拿到有一堆 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;
}

浙公网安备 33010602011771号