#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 flag=0,flag2=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;
/*词库区:
1. 要添加词直接在数组中补充
2. 特殊的,如果名词和形容词中都有“我们”,则名词库中的“我们”应放在第一个*/
string fang[]={"女厕所","童话","传说","原神","机房","卧室","厕所","餐桌","丁子博","破中学","阿里巴巴","天安门","热带雨林","考场"};//地点
string dong[]={"穿上","闯入","斗败","开动","斗败","杀死","进入","变成","盯着","歌颂","奴役"};//动词
string ming[]={"我们","蓝精灵","格格巫","老太婆","比基尼","王一乐","丁子博","肖子卓","键盘","丁一宸","奶龙","张培楠","傻鸟","跳跳哥","张轩程","李君泽"};//名词
string xing[]={"我们","招笑","可爱的","没母的","美味的","狗日的","匮乏的","爆炸的","稀有的","甘甜的","匆忙的","努力的","唐氏"};//形容词
string fuci[]={"自由自在地","善良勇敢地","齐心合力","活蹦乱跳地","来回摇摆地","狼心狗肺地","反复不停地","大快人心地","一不小心","开着小米苏7","忍不住","用力"};//副词
string yuan[100000];
/*随机抽词函数区:
核心部分!*/
string sdi(){
return fang[ran()%fangsiz];
}
string sdo(){
return dong[ran()%dongsiz];
}
string sxi(){
flag2=0;
int t=ran()%xingsiz;
if(t==0) flag2=1;
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(){
if(!flag2){
int x=ran()%mingsiz;
while(ming[x]=="尸体"){
x=ran()%mingsiz;
}
return ming[x];
}
else{
int x=1+ran()%(mingsiz-1);
flag2=0;
while(ming[x]=="尸体"){
x=1+ran()%(mingsiz-1);
}
return ming[1+ran()%(mingsiz-1)];
}
}
/*从句区:
和词库区一样,但要注意一一对应哦!*/
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(){
if(KEY_DOWN('W')){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
cout<<"启动超载!\n";
dengdai=0;
dadeng=0;
shijiandeng=0;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
Sleep(1000);
}
if(KEY_DOWN('R')){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
cout<<"暂停...\n";
string sb="";cin>>sb;
cout<<"继续运行!\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
}
if(KEY_DOWN('T')){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
cin>>dengdai>>dadeng>>shijiandeng;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
Sleep(1000);
}
if(KEY_DOWN('E')){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
cout<<"速度已重置!\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
dengdai=tdengdai;
dadeng=tdadeng;
shijiandeng=tshijiandeng;
Sleep(1000);
}
if(KEY_DOWN('Q')){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
cout<<"已启用预设速度!\n";
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
dengdai=yudengdai;
dadeng=yudadeng;
shijiandeng=yushijiandeng;
Sleep(1000);
}
}
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;
cout<<"快捷键:\n Q:使用预设速度\n W:炒鸡加速\n E:重置为最初速度。\n R:暂停(随便打个什么字母后enter继续)\n T:输入速度。\n" ;
for(int i=0;i<mingsiz;i++) yuan[i]=ming[i];
/*参数区:
1. 目前只有从句频率是在控制台中输入的,其他参数需要在这里改源码
2. shandian:触发闪电概率,ganran:触发感染概率,fuchou:死后怨念复仇概率,fusu:复活概率
3. 当变量的数值为 x 时,一回合触发对应事件的概率为 1/x */
cout<<"请输入从句频率,输入越大,频率越低:";
int cong;
cin>>cong;
long long T=1e18;//最多运行回合,防卡死
while(T--){
panduan();
freopen("记分板.txt","w",stdout);//这里的代码会在你的电脑上生成记分板,保存到哪里输出到哪里
// freopen("蓝精灵知波.txt","w",stdout);
freopen("CON","w",stdout);
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);
*/