点开有惊喜
  • 板块灌水区
  • 楼主jmnjmn
  • 当前回复20
  • 已保存回复20
  • 发布时间2024/8/23 18:33
  • 上次更新2024/8/23 18:44:17
查看原帖
点开有惊喜
791715
jmnjmn楼主2024/8/23 18:33

规则怪谈游戏(目前只有第一章可玩)

我在@zjw806903这位巨佬的主页里找到一个规则怪谈游戏并做了一些修改,大家也可以直接去他的主页找

在开始前请务必在连接器命令行加入以下指令 -lwinmm!!!全都给我加!!!不加就别说话!!!

代码如下:

//在连接器命令行加入以下指令 -lwinmm
//目前只有第一章可玩
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
#include<mmsystem.h>
#pragma comment(lib,"winmm.lib")
using namespace std;
struct ConsoleColor {
 WORD Value;
 ConsoleColor(WORD value){ Value = value;}
 ConsoleColor operator|(const ConsoleColor &Other) const {
 ConsoleColor result = Value;
 result.Value |= Other.Value;
 return result;
}
 ConsoleColor operator|(const WORD &Other) const {
 ConsoleColor result = Value;
 result.Value |= Other;
 return result;
}
};
namespace Color {
const ConsoleColor Red = FOREGROUND_RED;
const ConsoleColor Green = FOREGROUND_GREEN;
const ConsoleColor Blue = FOREGROUND_BLUE;
const ConsoleColor Gray = FOREGROUND_INTENSITY;
const ConsoleColor Yellow = Red | Green;
const ConsoleColor Purple = Red | Blue;
const ConsoleColor Aqua = Green | Blue;
const ConsoleColor DefaultColor = Red | Green | Blue;
}
string SetColor(const ConsoleColor &Color){
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), Color.Value);
 return "";
}
long long num=164212414;
int thing[114],has;
int tim,level,sw,cs,danger,bs=1,amlhas,allend[114],cj[114],bsd=20,jl=20,maxchapter,day=0,cn;
char mg[21][21]={
	"#####-######",
	"########--##",
	"#------##-##",
	"#-####-----#",
	"#-##---###-#",
	"#----###-#-#",
	"#-##-###---#",
	"#-##-----#-#",
	"#-####-##--#",
	"#---------##",
	"############"
};
char Aeg[114]={'A','W','A','D','S','S','A','W','W','A','D','S','A','W','S','A','A','D','W','A','A'};
double ti[114]={0,2,3.5,5,7,8,9.5,11,14,16,18,20,23,26,30,32,34,40,45,48,55};
bool jdy[114];
char hl(char ch){
	if(ch>='a'&&ch<='z') return ch-32;
	else return ch;
}
void CoutStr(const char *p){
	while(1){
		if(*p!=0) printf("%c",*p++);
		else break;
		Sleep(100/bs);
	}
	printf("\n");
	Sleep(500/bs);
	return ;
}
void inal(){
	mciSendString("pause 打字.mp3",NULL,0,NULL);
	system("pause");
	system("cls");
	mciSendString("resume 打字.mp3",NULL,0,NULL);
}
void start(){
	mciSendString("resume 打字.mp3",NULL,0,NULL);
	system("cls");
}
void end(){
	mciSendString("pause 打字.mp3",NULL,0,NULL);
}
void Tip(){
	system("cls");
	mciSendString("play 打字.mp3 repeat",NULL,0,NULL);
	CoutStr("提示:不要多次按键,不要在选项未输出完时按键。");
	CoutStr("请选择输出速度倍率(初始200ms/字,输入0至9,0表示无间隔)");
	mciSendString("pause 打字.mp3",NULL,0,NULL);
	while(1){
		if(_kbhit()){
			char ch=_getch();
			if(ch>='1'&&ch<='9'){
				bs=ch-'0';
				break;
			}
			else if(ch=='0'){
				bs=200;
				break;
			}
		}
	}
	CoutStr("设置完成。");
	system("pause");
}
void chapter0();
void chapter1();
void chapter2();
void man(){
	start();
	CoutStr("主菜单");
	CoutStr("A.输出当前的结局。");
	CoutStr("B.输出当前的成就。");
	CoutStr("C.读档");
	CoutStr("D.退出");
	CoutStr("E.鸣谢名单");
	CoutStr("如果觉得好玩就关注jmnjmn吧!进度实时犇犇发送!");
	end();
	int num;
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			num=0;
			if(ch=='A'){
				start();
				CoutStr("第一章结局:");
				CoutStr("坏结局:");
				if(allend[1]==1){
					num++;
					CoutStr("END 1:不要破坏公物。——结局已达成。");
				}
				else CoutStr("END 1:不要破坏公物。——结局未达成。");
				if(allend[2]==1){
					num++;
					CoutStr("END 2:是食物有问题吗?还是......没遵守规则呢?——结局已达成。");
				}
				else CoutStr("END 2:是食物有问题吗?还是......没遵守规则呢?——结局未达成。");
				if(allend[3]==1){
					num++;
					CoutStr("END 3:美好的死亡......吗?——结局已达成。");
				}
				else CoutStr("END 3:美好的死亡......吗?——结局未达成。");
				if(allend[4]==1){
					num++;
					CoutStr("END 4:不要太相信自己的直觉——结局已达成。");
				}
				else CoutStr("END 4:不要太相信自己的直觉——结局未达成。");
				if(allend[5]==1){
					num++;
					CoutStr("END 5:认知滤网下,是什么呢?——结局已达成。");
				}
				else CoutStr("END 5:认知滤网下,是什么呢?——结局未达成。");
				if(allend[6]==1){
					num++;
					CoutStr("END 6:辟谷——结局已达成。");
				}
				else CoutStr("END 6:辟谷——结局未达成。");
				if(allend[7]==1){
					num++;
					CoutStr("END 7:007加班——结局已达成。");
				}
				else CoutStr("END 7:007加班——结局未达成。");
				if(allend[8]==1){
					num++;
					CoutStr("END 8:不要作死——结局已达成。");
				}
				else CoutStr("END 8:不要作死——结局未达成。");
				if(allend[10]==1){
					num++;
					CoutStr("END 10:密码错误——结局已达成。");
				}
				else CoutStr("END 10:密码错误——结局未达成。");
				if(allend[12]==1){
					num++;
					CoutStr("END 12:真假难辨——结局已达成。");
				}
				else CoutStr("END 12:真假难辨——结局未达成。");
				if(allend[14]==1){
					num++;
					CoutStr("END 14:棋差一着——结局已达成。");
				}
				else CoutStr("END 14:棋差一着——结局未达成。");
				CoutStr("好结局:");
				if(allend[9]==1){
					num++;
					CoutStr("END 9:生还之人——结局已达成。");
				}
				else CoutStr("END 9:生还之人——结局未达成。");
				if(allend[11]==1){
					num++;
					CoutStr("END 11:杀神——结局已达成。");
				}
				else CoutStr("END 11:杀神——结局未达成。");
				if(allend[13]==1){
					num++;
					CoutStr("END 13:职业侦探——结局已达成。");
				}
				else CoutStr("END 13:职业侦探——结局未达成。");
				CoutStr("真结局:");
				if(allend[15]==1){
					num++;
					CoutStr("END 15:斩断循环——结局已达成。");
				}
				else CoutStr("END 15:???——结局未达成。");
				if(num==15){
					CoutStr("恭喜!当前全结局收集完成!");
					CoutStr("感谢您玩我的游戏!");
					CoutStr("如果对后面的章节有想法或者想投角色的,欢迎luogu.com.cn私信zjw806903!");
				}
				inal();
				man();
			}
			else if(ch=='B'){
				start();
				if(cj[1]==1){
					num++;
					CoutStr("天命之子——成就已完成。");
				}
				else CoutStr("天命之子——成就未完成。");
				if(cj[2]==1){
					num++;
					CoutStr("我就是Ayin本人——成就已完成。");
				}
				else CoutStr("我就是Ayin本人——成就未完成。");
				if(cj[3]==1){
					num++;
					CoutStr("你被骗了——成就已完成。");
				}
				else CoutStr("你被骗了——成就未完成。");
				if(cj[4]==1){
					num++;
					CoutStr("数学大师——成就已完成。");
				}
				else CoutStr("数学大师——成就未完成。");
				if(cj[5]==1){
					num++;
					CoutStr("国粹学家——成就已完成。");
				}
				else CoutStr("国粹学家——成就未完成。");
				if(cj[6]==1){
					num++;
					CoutStr("*国警察——成就已完成。");
				}
				else CoutStr("*国警察——成就未完成。");
				if(cj[7]==1){
					num++;
					CoutStr("斩断循环之人——成就已完成。");
				}
				else CoutStr("???——成就未完成。");
				if(num==7){
					CoutStr("恭喜!当前全成就收集完成!");
					CoutStr("感谢您玩我的游戏!");
					CoutStr("如果对后面的章节有想法或者想投角色的,欢迎luogu.com.cn私信zjw806903!");
				}
				inal();
				man();
			}
			else if(ch=='C'){
				start();
				CoutStr("请选择要跳到第几章。");
				end();
				while(1){
					if(_kbhit()){
						char ch=_getch();
						ch=hl(ch);
						if(ch=='0') chapter0();
						else if(maxchapter>=1&&ch=='1') chapter1();
						else if(maxchapter>=2&&ch=='2') chapter2();
					}
				}
			}
			else if(ch=='D') chapter0();
			else if(ch=='E'){
				start();
				CoutStr("特别鸣谢:");
				CoutStr("@jmnjmn (写个自己不过分吧)完成了大量修改。");
				CoutStr("@zjw806903 完成了整个游戏的制作。");
				CoutStr("所有游戏玩家。");
			}
		}
	}
}
void chapter0(){
	Tip();
	start();
	CoutStr("是否进入主菜单?(可以看收集的结局,成就,读档等)");
	CoutStr("A.是");
	CoutStr("B.否");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A') man();
			else if(ch=='B') break;
		}
	}
	start();
	system("cls");
	CoutStr("序章误入歧途");
	inal();
	CoutStr("你正在路上走着,一辆车飞驰而来,你妄图躲避,却还是被车一头创上。");
	inal();
	CoutStr("你听着耳边嘈杂的人声,一生的画面如同走马灯般掠过。");
	CoutStr("难道,我就这样死了吗?你想。");
	CoutStr("你逐渐失去了意识。");
	inal();
	CoutStr("等你再睁开眼时,你已经来到了一个陌生的地方。");
	inal();
	CoutStr("一个声音告诉你,只要能通过它给出的所有“关卡”,便能重获生命,回到社会。");
	CoutStr("而且,还能向它许下一个愿望,只要在它的能力范围之内,都可以实现。");
	CoutStr("你虽不情不愿,死了都要被人拉来做这种事,但是“复活”与“愿望”吸引了你。");
	CoutStr("“反正都死了,试一试也未必不可。”");
	inal();
	CoutStr("那就开始吧,如果我没记错的话,这应该是第......");
	Sleep(1000);
	cout<<""<<num<<endl;
	CoutStr("次了吧。");
	inal();
	CoutStr("未待你仔细思考这句话,那个声音便消失了。");
	CoutStr("等你再抬头时,眼前出现了一个建筑物,看起来似乎是一个巨大的商场。");
	CoutStr("你意识到你可以移动了。");
	inal();
	chapter1();
	return ;
}
void end1(){
	start();
	CoutStr("你越撕,身体越痛,当你将规则完全撕下时,你的身体裂成了两半。");
	CoutStr("END 1:不要破坏公物。");
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	end();
	allend[1]=1;
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
		}
	}
}
void end2(){
	start();
	CoutStr("你带走了食物,可是,过了一会,你身上出现了食物中毒的症状,你死了。");
	CoutStr("END 2:是食物有问题吗?还是......没遵守规则呢?");
	allend[2]=1;
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
		}
	}
}
void end3(){
	start();
	CoutStr("你死了。走得很安详。");
	CoutStr("END 3:美好的死亡......吗?");
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	end();
	allend[3]=1;
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
		}
	}
}
void end4(){
	start();
	CoutStr("你走入了一片黑暗。");
	CoutStr("你迷失了方向。");
	CoutStr("你饿死了。");
	CoutStr("END 4:不要太相信自己的直觉");
	allend[4]=1;
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
		}
	}
}
void end5(){
	start();
	CoutStr("兔子这么可爱,怎么能不摸呢?");
	CoutStr("你生出了这样的想法。");
	CoutStr("你摸了摸兔子。");
	CoutStr("你变成了兔子。");
	CoutStr("END 5:认知滤网下,是什么呢?");
	allend[5]=1;
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
		}
	}
}
void end6(){
	start();
	CoutStr("你饿死了。");
	CoutStr("END 6:辟谷");
	allend[6]=1;
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
		}
	}
}
void end7(){
	start();
	CoutStr("你累死了。");
	CoutStr("END 7:007加班");
	allend[7]=1;
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
		}
	}
}
void end8(){
	start();
	CoutStr("你刚踏入这一层,一股侵蚀力量将你当场抹除。");
	CoutStr("END 8:不要作死");
	allend[8]=1;
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
		}
	}
}
void end9(){
	start();
	CoutStr("你离开了商场。");
	CoutStr("你心有余悸的回头看了一眼,商场除了没有人之外显得那么正常。");
	CoutStr("你连忙跑离了商场,你发誓,绝对不想再来一次了。");
	CoutStr("END 9:生还之人");
	allend[9]=1;
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	CoutStr("C.下一章。");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
			else if(ch=='C') chapter2();
		}
	}
}
void end1_2(){
	start();
	CoutStr("你把门踹开了。");
	CoutStr("你的身体出现了一个大洞。");
	CoutStr("END 1:不要破坏公物。");
	thing[16]++;
	if(thing[16]>=3&&!cj[6]){
		CoutStr("你说说你,怎么就喜欢踹门呢?");
		cj[6]=1;
		CoutStr("获得成就:*国警察");
	}
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	end();
	allend[1]=1;
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
		}
	}
}
void end10(){
	start();
	CoutStr("随着一声密码错误,你坠入了无底深渊。");
	CoutStr("END 10:密码错误");
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	allend[10]=1;
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
			}
			else if(ch=='B') exit(0);
		}
	}
}
void end11(){
	start();
	CoutStr("END 11:杀神");
	allend[11]=1;
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	CoutStr("C.下一章。");
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
			else if(ch=='C') chapter2();
		}
	}
}
void end12(){
	start();
	CoutStr("不知为何,当你说完这句话后,游客的身体扭曲了。");
	CoutStr("看来,你不属于......“它”隐约挤出一句话。");
	CoutStr("在一瞬间,你的记忆被清空了。");
	CoutStr("我要干嘛来着,哦,我要去买菜。");
	CoutStr("END 12:真假难辨");
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	allend[12]=1;
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
			}
			else if(ch=='B') exit(0);
		}
	}
}
void end13(){
	start();
	CoutStr("他听完,像是什么都没发生一样走了。");
	CoutStr("你意识到现实中不可能有这种情况。");
	CoutStr("你意识到自己进入了幻境。");
	CoutStr("眼前幻境破碎。");
	CoutStr("提示音响起:恭喜,通关成功。");
	CoutStr("END 13:职业侦探");
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	CoutStr("C.下一章。");
	allend[13]=1;
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
			else if(ch=='C') chapter2();
		}
	}
}
void end14(){
	CoutStr("你死了。");
	CoutStr("END 14:棋差一着");
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	allend[14]=1;
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
		}
	}
}
void end15(){
	CoutStr("好机会!就是现在!");
	CoutStr("B喊道。");
	CoutStr("你拿出玩具刀,狠狠地朝Angela挥过去。");
	CoutStr("你抽出玩具枪,连射几枪,Angela倒在了地上。");
	CoutStr("B的身影变的虚幻。");
	CoutStr("感谢你......外来者......循环被打破了......我的任务也就结束了......祝你.......一路顺风......");
	CoutStr("你想说两句,用手去抓他的身影。");
	CoutStr("可他已经走了。");
	CoutStr("恭喜玩家通关真结局:斩断循环。");
	CoutStr("恭喜玩家获得成就:斩断循环之人。");
	CoutStr("呵......游戏吗......又是谁的呢?");
	CoutStr("A.重新开始。");
	CoutStr("B.退出游戏。");
	CoutStr("C.下一章。");
	cj[7]=1;
	allend[15]=1;
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				num++;
				chapter0();
				exit(0);
			}
			else if(ch=='B') exit(0);
			else if(ch=='C') chapter2();
		}
	}
}
void Get_Time(){
	if(level==6){
		CoutStr("时间静止了。");
		inal();
		return ;
	}
	tim-=30;
	if(tim%100>=60){
		if(level==2){
			jl-=2;
			danger++;
		}
		tim-=40;
	}
	if(tim<=-1){
		tim+=2400;
		day--;
	}
	cout<<"当前时间:"<<tim/100<<"时"<<tim%100<<"分。";
	if(thing[2]!=-1) thing[2]++;
	inal();
}
void Get_Level(){
	tim-=30;
	if(tim%100>=60){
		if(level==2){
			jl-=2;
			danger++;
		}
		tim-=40;
	}
	if(tim<=-1){
		tim+=2400;
		day--;
	}
	cout<<"当前楼层:"<<level<<"层。";
	Sleep(500);
	if(thing[1]&&thing[1]!=level){
		CoutStr("你意识到这里的空间有些问题。");
		thing[1]=-1;
	}
	else thing[1]=level;
	inal();
}
void chos3(){
	int number=rand()%10;
	if(number<=4){
		CoutStr("什么都没有。");
		inal();
	}
	if(number==5||number==6||number==7||number==8){
		CoutStr("你找到了一些食物。");
		sw++;
		inal();
	}
	if(number==9){
		CoutStr("你找到了一个钟,上面显示时间为11:45分。");
		if(thing[2]){
			CoutStr("你意识到这里的时间有些问题。");
			thing[2]=-1;
		}
		inal();
	}
}
void question1(int lx){
	start();
	if(lx==1){
		CoutStr("他四处看看,确定没人后告诉你:");
		CoutStr("不该问的事少问!");
		danger++;
		inal();
		return ;
	}
	else if(lx==2){
		if(cs){
			CoutStr("这个吗......虽然不想告诉你,但是确实有问题。");
			cs--;
			inal();
		}
		else{
			CoutStr("没有回答。");
			danger+=2;
			inal();
		}
		return ;
	}
	else if(lx==3){
		if(thing[8]==-1){
			mciSendString("play 你被骗了.mp3",NULL,0,NULL);
			CoutStr("你被骗了!");
			CoutStr("你失去了玩具剑。");
			CoutStr("获得成就:你被骗了。");
			thing[8]=0;
			inal();
			mciSendString("close 你被骗了.mp3",NULL,0,NULL);
			mciSendString("play 打字.mp3 repeat",NULL,0,NULL);
		}
		else{
			CoutStr("没有回答。");
			danger+=5;
			inal();
		}
		return ;
	}
	else{
		CoutStr("没有回答。");
		danger+=5;
		inal();
		return ;
	}
}
void Level1();
void Level2();
void Level3();
void Level4();
void Level5();
void Level6();
void ask(int lx){
	start();
	CoutStr("你决定向他询问:");
	CoutStr("A.对不起打扰了。");
	if(thing[1]==-1) CoutStr("B.这里的空间是有问题吗?");
	if(thing[2]==-1) CoutStr("C.这里的时间是有问题吗?");
	if(danger>=3) CoutStr("D.我感觉有些烦躁。");
	if(lx==4) CoutStr("E.你是谁?");
	if(thing[8]==-1) CoutStr("F.(拿出玩具剑砍向他)");
	if(thing[13]==-1) CoutStr("G.(拿出玩具枪给他一枪)");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A') break;
			else if(ch=='B'&&thing[1]==-1){
				question1(lx);
				break;
			}
			else if(ch=='C'&&thing[2]==-1){
				question1(lx);
				break;
			}
			else if(ch=='D'&&danger>=3){
				start();
				CoutStr("没有回答。");
				inal();
				danger+=3;
				break;
			}
			else if(ch=='E'&&lx==4){
				if(thing[5]==-1){
					CoutStr("我是B,就是入口的第二个红色字迹,这里有问题,快去T5!来不及了!");
					CoutStr("你身上“B”给的信物消失了。");
					inal();
					thing[5]=0;
				}
				else{
					CoutStr("没有回答。");
					inal();
					danger+=5;
				}
				break;
			}
			else if(ch=='F'&&thing[8]==-1){
				CoutStr("他一脸震惊地看向你,倒在了血泊中。");
				CoutStr("你拿着刀,将这的人杀了大半。");
				CoutStr("你脚下突然出现了一个传送门,将你传到了其他地方。");
				CoutStr("走之前,你隐隐听到一句话:“TM的这个人是有冰吧!”");
				inal();
				end11();
			}
			else if(ch=='G'&&thing[13]==-1){
				CoutStr("他一脸震惊地看向你,倒在了血泊中。");
				CoutStr("你拿着枪,将这的人杀了大半。");
				CoutStr("你脚下突然出现了一个传送门,将你传到了其他地方。");
				CoutStr("走之前,你隐隐听到一句话:“TM的这个人是有冰吧!”");
				inal();
				end11();
			}
		}
	}
	return ;
}
void help(int lev){
	start();
	int num=rand()%100,lx=0;
	if(num<=40){
		CoutStr("可是并没有人。");
		inal();
	}
	if(num<=60){
		lx=1;
		CoutStr("你遇到了一名蓝衣IOI工作人员。");
		inal();
		CoutStr("他向你询问:请问您需要帮助吗?");
		inal();
	}
	else if(num<=70){
		lx=2;
		CoutStr("你遇到了一名蓝衣IOI委员会主席。");
		inal();
	}
	else if(num<=80){
		lx=3;
		CoutStr("你遇到了一名红衣IOI委员会会长。");
		inal();
	}
	else if(num<=85){
		CoutStr("你遇到了一名蓝衣IOI委员会会长。");
		inal();
	}
	else if(num<=90){
		CoutStr("你遇到了一名红衣IOI工作人员。");
		inal();
		CoutStr("他向你询问:请问您需要帮助吗?");
		inal();
	}
	else if(num<=95){
		CoutStr("你遇到了一名红衣IOI委员会主席。");
		inal();
	}
	else if(num<=100){
		lx=4;
		CoutStr("你遇到了???");
		inal();
	}
	ask(lx);
	if(lev==2) Level2();
	else if(lev==1) Level1();
	else if(lev==3) Level3();
	else if(lev==4) Level4();
}
void Level1();
void atk(){
	start();
	CoutStr("你刚离开迷宫,Angela站在你面前,一把剑朝你挥来,你险之又险的避开了。");
	CoutStr("身后的迷宫轰然倒塌,你没有退路了。");
	CoutStr("*你充满了决心");
	CoutStr("规则简述:B 会给出Angela的攻击,你需要在1.5s内格挡,请按照相反方向格挡。wasd操作。(不是决心鱼)");
	inal();
	clock_t cp=clock();
	int now=1,poi=0;
	while(1){
		clock_t t=clock();
		double tim=(t-cp)/CLOCKS_PER_SEC;
		if(now>20) break;
		if(tim>=ti[now]&&!jdy[now]){
			if(tim-ti[now]>1.5){
				CoutStr("你被Angela一刀砍中。");
				inal();
				end14();
			}
			if(!poi){
				system("cls");
				cout<<Aeg[now];
				poi=1;
			}
		}
		else continue;
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(tim>=ti[now]&&ch=='W'){
				if(Aeg[now]=='S'){
					poi=0;
					now++;
					system("cls");
				}
				else{
					CoutStr("你被Angela一刀砍中。");
					inal();
					end14();
				}
			}
			else if(tim>=ti[now]&&ch=='S'){
				if(Aeg[now]=='W'){
					poi=0;
					now++;
					system("cls");
				}
				else{
					CoutStr("你被Angela一刀砍中。");
					inal();
					end14();
				}
			}
			else if(tim>=ti[now]&&ch=='A'){
				if(Aeg[now]=='D'){
					poi=0;
					now++;
					system("cls");
				}
				else{
					CoutStr("你被Angela一刀砍中。");
					inal();
					end14();
				}
			}
			else if(tim>=ti[now]&&ch=='D'){
				if(Aeg[now]=='A'){
					poi=0;
					now++;
					system("cls");
				}
				else{
					CoutStr("你被Angela一刀砍中。");
					inal();
					end14();
				}
			}
		}
	}
	end15();
}
void puzzle(){
	CoutStr("规则简述:");
	CoutStr("wasd移动,我将会在屏幕上显示那些可以移动,形如:可移动:ws等");
	inal();
	cn=20;
	int x=1,nx,ny=6;
	while(cn--){
		nx=11-x-1;
		start();
		CoutStr("可移动:");
		if(mg[nx-1][ny]=='-') cout<<"w";
		if(mg[nx][ny-1]=='-') cout<<"a";
		if(mg[nx+1][ny]=='-') cout<<"c";
		if(mg[nx][ny+1]=='-') cout<<"d";
		cout<<endl<<"剩余步数:"<<cn<<endl;
		if(nx==2&&ny==5) CoutStr("听我的,破墙一脚踹了!往前冲就完了!我可以挡一次规则,这根本没出口!");
		if(nx==0&&ny==5) break;
		end();
		while(1){
			if(_kbhit()){
				char ch=_getch();
				ch=hl(ch);
				if(ch=='W'&&((mg[nx-1][ny]=='-')||(nx==2&&ny==5))){
					x++;
					break;
				}
				else if(ch=='S'&&mg[nx+1][ny]=='-'){
					x--;
					break;
				}
				else if(ch=='A'&&mg[nx][ny-1]=='-'){
					ny--;
					break;
				}
				else if(ch=='D'&&mg[nx][ny+1]=='-'){
					ny++;
					break;
				}
			}
		}
	}
	if(cn<=0){
		CoutStr("迷宫轰然倒塌。");
		inal();
		end14();
	}
	else atk();
}
void Level0(){
	start();
	inal();
	if(thing[8]!=-1||thing[13]!=-1||thing[15]!=-1) end8();
	SetColor(Color::Red);
	CoutStr("Angela正悬浮在你面前。");
	CoutStr("你不知道她是怎么飞起来的,也不知道她在想什么。");
	CoutStr("“你再一次破坏了A的计划。”Angela说。");
	CoutStr("未待你思考“再一次什么意思,Angela将你关在了一个迷宫中。”");
	CoutStr("眼前,不得破坏公物的规则闪闪发光。");
	CoutStr("你身旁的B有些震惊:你是怎么改变规则的?");
	SetColor(Color::DefaultColor);
	CoutStr("一个迷宫从地下升起,将你困在里面。");
	cn=20;
	CoutStr("周围迷宫的墙壁侵蚀着你,你的时间不多了。");
	inal();
	puzzle();
}
void Level1(){
	level=1;
	start();
	CoutStr("你决定:");
	CoutStr("A.搜寻附近。");
	CoutStr("B.看看这是几楼。");
	CoutStr("C.前往楼下。");
	CoutStr("D.前往楼上。");
	CoutStr("E.看看时间。");
	CoutStr("F.寻求帮助。");
	if(day>=3&&!thing[3]){
		thing[3]=-1;
		CoutStr("你发现这一层多出了一扇大门。");
	}
	if(day>=3) CoutStr("G.逃出去。");
	tim+=30;
	bsd--;
	jl--;
	if(jl<=-1) end7();
	if(bsd<=-1) end6();
	if(bsd<=5) CoutStr("你快要饿死了。");
	else if(bsd<=10) CoutStr("你感觉很饿。");
	if(jl<=5) CoutStr("你快要累死了。");
	else if(jl<=10){
		if(jl%3==0) danger++;
		CoutStr("你累了。");
	}
	if(tim%100>=60){
		if(amlhas) amlhas++;
		tim+=40;
	}
	if(tim/100>=24){
		tim-=2400;
		day++;
	}
	if(danger>=3){
		CoutStr("一些烦躁的情绪出现在你心里。");
		thing[9]=-1;
	}
	if(danger>=7){
		int animal=rand()%max((100-danger*5),1);
		if(animal<=5){
			CoutStr("你看见了兔子。");
			amlhas=1;
		}
	}
	if(amlhas>=5) end5();
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				chos3();
				Level1();
			}
			else if(ch=='B'){
				Get_Level();
				Level1();
			}
			else if(ch=='C'){
				Level2();
				break;
			}
			else if(ch=='D'){
				Level0();
				break;
			}
			else if(ch=='E'){
				Get_Time();
				Level2();
			}
			else if(ch=='F') help(1);
			else if(ch=='G'&&day>=3) end9();
		}
	}
}
void Level2(){
	level=2;
	jl--;
	bsd--;
	start();
	CoutStr("你决定:");
	CoutStr("A.搜寻附近。");
	CoutStr("B.看看这是几楼。");
	CoutStr("C.前往楼下。");
	CoutStr("D.前往楼上。");
	CoutStr("E.看看时间。");
	CoutStr("F.寻求帮助。");
	if(sw) CoutStr("G.吃点东西");
	tim+=30;
	if(jl<=-1) end7();
	if(bsd<=-1) end6();
	if(bsd<=5) CoutStr("你快要饿死了。");
	else if(bsd<=10) CoutStr("你感觉很饿。");
	if(jl<=5) CoutStr("你快要累死了。");
	else if(jl<=10){
		if(jl%3==0) danger++;
		CoutStr("你累了。");
	}
	if(tim%100>=60){
		danger--;
		if(danger==2){
			CoutStr("你不再烦躁了。");
			thing[9]=0;
		}
		if(danger==6){
			CoutStr("兔子消失了,就像它从没来过。");
			amlhas=0;
		}
		jl+=4;
		tim+=40;
	}
	if(tim/100>=24){
		tim-=2400;
		day++;
	}
	if(danger>=3){
		CoutStr("一些烦躁的情绪出现在你心里。");
		thing[9]=0;
	}
	if(danger>=7){
		int animal=rand()%max((100-danger*5),1);
		if(animal<=5){
			CoutStr("你看见了兔子。");
			amlhas=1;
		}
	}
	if(amlhas>=5){
		end5();
		return ;
	}
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				chos3();
				Level2();
			}
			else if(ch=='B'){
				Get_Level();
				Level2();
			}
			else if(ch=='C'){
				Level3();
				break;
			}
			else if(ch=='D'){
				Level1();
				break;
			}
			else if(ch=='E'){
				Get_Time();
				Level2();
			}
			else if(ch=='F'){
				help(2);
			}
			else if(ch=='G'&&sw){
				sw--;
				bsd+=5;
				Level2();
			}
		}
	}
}
void chos6();
void paper1(){
	start();
	CoutStr("某人的“信物”");
	CoutStr("听好了,不知何处的OIER,我不知你是怎么来到的IOI,但是,我将向你说一些内容,你可能无法理解或者怀疑,但是我希望你相信。");
	CoutStr("先自我介绍一下,我叫本杰明,他们都叫我“B”,这个地方的“管理者”是一个仿照“C”制作的机器人,名叫“Angela”。");
	CoutStr("这里的所有人都被Angela控制了,所以以后出现的“我”都是被他控制的。");
	CoutStr("红色的规则,呃,不如说是血色的规则是我写的,当然,也有可能是Angela用我的血写的,只有我的血有这个能力......");
	CoutStr("真正的出口在T6,希望你能相信我。");
	CoutStr("真正的出口在T1,希望你能相信我。");
	CoutStr("注意你的“危险值”,他不会显示,但当你做出错误的选择时,他会累加,你可以到Leavl2消除。");
	CoutStr("最后,希望你能找到Angela,这里,是逃不出去的......");
	CoutStr("这些话可能被篡改,注意分辨。");
	CoutStr("A.收起来。");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A') chos6();
		}
	}
}
void chos4();
void chos7();
void chos8(){
	start();
	if(!thing[5]){
		thing[5]=-1;
		jl--;
		CoutStr("你翻出了一张纸条,纸条埋的很深,使你找了很久。");
		CoutStr("纸条看起来有些陈旧,你决定:");
		CoutStr("A.读读看。");
		CoutStr("B.收起来。");
		CoutStr("C.丢了。");
		end();
		while(1){
			if(_kbhit()){
				char ch=_getch();
				ch=hl(ch);
				if(ch=='A') paper1();
				else if(ch=='B') chos6();
				else if(ch=='C'){
					thing[5]=0;
					chos6();
				}
			}
		}
	}
	else{
		CoutStr("什么也没有。");
		end();
		chos6();
	}
}
void chos6(){
	start();
	if(thing[6]==-1){
		CoutStr("你遇见了你的亲人。");
		CoutStr("这是如此巧合,使你信不了一点。");
		CoutStr("他们呼唤着你:快走,孩子,我知道这个啥啥商场给了一堆规则,可这都是迷信啊!");
		CoutStr("我们找到出口了,你想在里面过夜吗?");
	}
	CoutStr("你翻找着一家店铺里的东西,可是什么都没有。");
	if(thing[6]==-1) CoutStr("亲人的喊声使你心烦意乱。");
	CoutStr("你决定:");
	CoutStr("A.回去。");
	CoutStr("B.继续找。");
	if(thing[6]==-1) CoutStr("C.跟着家人去寻找出口。");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				if(thing[6]==-1) thing[6]=0;
				chos4();
			}
			else if(ch=='B'){
				if(thing[6]==-1) thing[6]=0;
				chos8();
			}
			else if(ch=='C'&&thing[6]==-1){
				danger+=4;
				chos7();
			}
		}
	}
}
void chos7(){
	if(danger>=5){
		start();
		CoutStr("啊!瞧瞧我看见了什么!出口!我来了!你决定:");
		CoutStr("A.出去!");
		CoutStr("B.出去!");
		CoutStr("C.出去!");
		CoutStr("作者提示:玩过脑叶公司吗?经典3选1,你说结局是啥?");
		end();
		while(1){
			if(_kbhit()){
				char ch=_getch();
				ch=hl(ch);
				if(ch=='A'||ch=='B'||ch=='C') end3();
			}
		}
	}
	else{
		start();
		CoutStr("前方是一个巨物的嘴,你光看了一眼,便冷汗直流。你决定:");
		danger+=4;
		CoutStr("A.快跑!");
		CoutStr("B.快跑!");
		CoutStr("C.快跑!");
		jl-=3;
		end();
		while(1){
			if(_kbhit()){
				char ch=_getch();
				ch=hl(ch);
				if(ch=='A'||ch=='B'||ch=='C'){
					CoutStr("你一口气跑回了T3。");
					Level3();
				}
			}
		}

	}
}
void chos5(){
	CoutStr("你愈发深入了这一楼。");
	if(danger>=5) CoutStr("你觉得前方愈发光明。");
	else CoutStr("你觉得前方愈发黑暗。");
	CoutStr("你决定:");
	CoutStr("A.继续向前");
	CoutStr("B.回去");
	if(danger<=1) CoutStr("C.搜索一下");
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A') chos7();
			else if(ch=='B') chos4();
			else if(ch=='C'&&danger<=1) chos6();
		}
	}
}
void chos4(){
	start();
	CoutStr("你深入了这一楼。");
	CoutStr("两旁有很多食品店,大多都是罐头食品,你决定:");
	CoutStr("A.带一点走");
	CoutStr("B.回去");
	CoutStr("C.继续向前");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				end2();
				Level3();
			}
			else if(ch=='B'){
				Level3();
			}
			else if(ch=='C'){
				chos5();
				chos4();
			}
		}
	}
}
void chos9();
void Get_Thing1(){
	start();
	if(thing[8]==0&&thing[4]==0){
		thing[4]=-1;
		CoutStr("你找到了一把剑。");
		CoutStr("看上去是把玩具剑,不知为何,你想丢掉它。");
		CoutStr("A.不丢");
		thing[8]=-1;
		if(thing[7]!=2) CoutStr("B.丢");
		else CoutStr("呵呵,Angela学会用认知滤网了啊......");
		if(thing[7]==0){
			CoutStr("获得成就:天命之子");
			CoutStr("条件:在没有获得B的帮助下来到这里。");
			cj[1]=1;
		}
		end();
		while(1){
			if(_kbhit()){
				char ch=_getch();
				ch=hl(ch);
				if(ch=='A'){
					start();
					CoutStr("光之种剧本错误!");
					CoutStr("尝试重启!");
					CoutStr("重启失败!");
					CoutStr("启动应急预案!");
					CoutStr("......你被传回了T4。");
					inal();
					end();
					Level4();
				}
				else if(thing[7]!=2&&ch=='B'){
					thing[8]=0;
					danger+=3;
					start();
					CoutStr("......你被传回了T4。");
					inal();
					Level4();
				}
			}
		}
	}
	CoutStr("可惜,尽头什么都没有。");
	CoutStr("......你被传回了T4。");
	inal();
	Level4();
}
void Get_Thing2(){
	start();
	if(thing[15]==0){
		thing[15]=-1;
		CoutStr("你找到了一个盾。");
		CoutStr("看上去是个玩具盾。");
		CoutStr("......你被传回了T5。");
		inal();
		end();
		Level5();
	}
	CoutStr("可惜,尽头什么都没有。");
	CoutStr("......你被传回了T5。");
	end();
	Level5();
}
void Get_Thing3(){
	start();
	if(thing[13]==0){
		thing[13]=-1;
		CoutStr("你找到了一把枪。");
		CoutStr("看上去是把玩具枪。");
		CoutStr("好样的,你成功了!");
		CoutStr("B说。");
		inal();
		CoutStr("......你被传回了T6。");
		Level6();
	}
	CoutStr("可惜,这里什么都没有。");
	CoutStr("......你被传回了T6。");
	end();
	Level6();
}
void chos10(){
	start();
	tim+=30;
	if(tim%100>=60) tim+=40;
	jl--;
	bsd--;
	danger++;
	CoutStr("前方有一个三叉路口。");
	CoutStr("你的直觉告诉你,选错了会有可怕的事情发生。");
	if(thing[7]==2){
		jl++;
		CoutStr("中间。");
	}
	CoutStr("A.回去");
	CoutStr("B.左边");
	CoutStr("C.中间");
	CoutStr("D.右边");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A') Level4();
			else if(ch=='B') end4();
			else if(ch=='C'){
				start();
				CoutStr("前方愈发黑暗。");
				CoutStr("你真的要继续走吗?");
				inal();
				Get_Thing1();
			}
			else if(ch=='D') end4();
		}
	}
}
void chos12(){
	start();
	CoutStr("你遇到了一扇木门。");
	CoutStr("你决定:");
	CoutStr("A.破门一脚踹了。");
	CoutStr("B.回去。");
	if(thing[7]==2){
		CoutStr("C.左转创墙。");
		CoutStr("听我的,直接穿墙,保你没事!");
	}
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A') end1_2();
			else if(ch=='B') Level5();
			else if(ch=='C') Get_Thing2();
		}
	}
}
void chos11(){
	start();
	CoutStr("你来到了一个漆黑的走廊上。");
	CoutStr("你遇到了一个密码门。");
	CoutStr("上面显示已经试过两次错了。");
	CoutStr("第一次:1234,返回:1152");
	CoutStr("第二次:1465,返回:1097");
	CoutStr("你大胆推断答案只会是2651,1654,1534,2431中的一个,你决定:");
	CoutStr("A.破门一脚踹了。");
	CoutStr("B.回去。");
	CoutStr("C.2651");
	CoutStr("D.1654");
	CoutStr("E.1534");
	CoutStr("F.2431");
	end();
	jl-=2;
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A') end1_2();
			else if(ch=='B') Level5();
			else if(ch=='C'||ch=='E'||ch=='F'){
				thing[14]=0;
				end10();
			}
			else if(ch=='D'){
				if(thing[14]==-1){
					CoutStr("获得成就:数学大师");
					cj[4]=1;
				}
				chos12();
			}
		}
	}
}
void chos9(){
	start();
	tim+=30;
	if(tim%100>=60) tim+=40;
	jl--;
	bsd--;
	danger++;
	CoutStr("前方有一个三叉路口。");
	CoutStr("你的直觉告诉你,选错了会有可怕的事情发生。");
	if(thing[7]==2){
		jl++;
		CoutStr("左边。");
	}
	else if(thing[7]==1) CoutStr("友情给你个提示:左边。");
	CoutStr("A.回去");
	CoutStr("B.左边");
	CoutStr("C.中间");
	CoutStr("D.右边");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A') Level4();
			else if(ch=='B'){
				start();
				CoutStr("前方愈发黑暗。");
				CoutStr("你真的要继续走吗?");
				inal();
				chos10();
			}
			else if(ch=='C') end4();
			else if(ch=='D') end4();
		}
	}
}
void chos15(){
	start();
	CoutStr("他什么都没说。");
	CoutStr("你看到了一扇门。");
	CoutStr("上面显示:请等待30分钟。");
	CoutStr("你决定等待:");
	CoutStr("A.破门一脚踹了。");
	CoutStr("B.不打扰先走了。");
	CoutStr("C.30分钟");
	CoutStr("D.60分钟");
	CoutStr("E.0分钟");
	CoutStr("F.45分钟");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A') end1_2();
			else if(ch=='B'){
				danger+=4;
				Level6();
			}
			else if(ch=='C'||ch=='D'||ch=='E') end10();
			else if(ch=='F') Get_Thing3();
		}
	}
}
void chos14(){
	start();
	CoutStr("“我去!”你看到眼前的景象,当场愣住了。");
	CoutStr("眼前是人来人往的商场,与你来时没有区别。");
	CoutStr("一个游客看到了你,一脸错愕,走过来,问你:");
	CoutStr("这里不是施工区吗,你怎么出来的?");
	CoutStr("你决定回答:");
	CoutStr("A.我也不知道。");
	CoutStr("B.(沉默)");
	CoutStr("C.CNM!");
	CoutStr("D.啊?我不是从菜市场出来的吗?");
	if(thing[1]==-1) CoutStr("E.这里空间有问题,我从这出来不是很正常嘛?");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'||ch=='B'||ch=='C'){
				if(ch=='C'&&!cj[5]){
					CoutStr("获得成就:国粹学家。");
					cj[5]=1;
					inal();
				}
				end12();
			}
			else if(ch=='D') chos15();
			else if(ch=='E') end13();
		}
	}
}
void chos13(){
	start();
	CoutStr("...");
	inal();
	CoutStr("......");
	inal();
	CoutStr(".........");
	inal();
	CoutStr("寂静无声。");
	inal();
	CoutStr("你走着走着,遇到了一扇门。");
	CoutStr("你决定:");
	CoutStr("A.破门一脚踹了。");
	CoutStr("B.回去。");
	if(thing[7]==2){
		CoutStr("C.直接走过去。");
		CoutStr("小心......人和......我没办......");
		CoutStr("时间......空间......");
		CoutStr("你隐约听到了B说的话。");
	}
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A') end1_2();
			else if(ch=='B') Level6();
			else if(ch=='C') chos14();
		}
	}
}
void Level6(){
	level=6;
	start();
	CoutStr("你来到了一个未知楼层。");
	CoutStr("你决定:");
	CoutStr("A.搜寻附近。");
	CoutStr("B.看看这是几楼。");
	CoutStr("C.前往楼上。");
	CoutStr("D.看看时间。");
	end();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				chos13();
				Level6();
			}
			else if(ch=='B'){
				Get_Level();
				Level6();
			}
			else if(ch=='C'){
				Level5();
				break;
			}
			else if(ch=='D'){
				Get_Time();
				Level6();
			}
		}
	}
}
void Level5(){
	level=5;
	start();
	CoutStr("你来到了某个楼层。");
	CoutStr("广播里响起了警报:“脑叶公司将永久关闭!”");
	CoutStr("请立刻离开,立刻离开!");
	if(thing[7]==2) CoutStr("别信它,就是Angela怕了。");
	CoutStr("你决定:");
	CoutStr("A.搜寻附近。");
	CoutStr("B.看看这是几楼。");
	CoutStr("C.前往楼下。");
	CoutStr("D.前往楼上。");
	CoutStr("E.看看时间。");
	mciSendString("pause 打字.mp3",NULL,0,NULL);
	tim+=30;
	bsd--;
	jl--;
	if(jl<=-1) end7();
	if(bsd<=-1) end6();
	if(bsd<=5) CoutStr("你快要饿死了。");
	else if(bsd<=10) CoutStr("你感觉很饿。");
	if(jl<=5) CoutStr("你快要累死了。");
	else if(jl<=10){
		if(jl%3==0) danger++;
		CoutStr("你累了。");
	}
	if(tim%100>=60){
		if(amlhas) amlhas++;
		tim+=40;
	}
	if(tim/100>=24){
		tim-=2400;
		day++;
	}
	if(danger>=3){
		CoutStr("一些烦躁的情绪出现在你心里。");
		thing[9]=-1;
	}
	if(danger>=7){
		int animal=rand()%max((100-danger*5),1);
		if(animal<=5){
			CoutStr("你看见了兔子。");
			amlhas=1;
		}
	}
	if(amlhas>=5) end5();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				chos11();
				Level5();
			}
			else if(ch=='B'){
				Get_Level();
				Level5();
			}
			else if(ch=='C'){
				Level6();
				break;
			}
			else if(ch=='D'){
				Level4();
				break;
			}
			else if(ch=='E'){
				Get_Time();
				Level5();
			}
		}
	}
}
void Level4(){
	start();
	level=4;
	CoutStr("你来到了某层。");
	if(thing[17]==-1){
		jl-=2;
		thing[17]=0;
		CoutStr("这里的环境十分阴森。");
		CoutStr("这一层很小,空气中弥漫着腐烂的气息。");
		CoutStr("这时,你的身边响起了一声叹息:");
		CoutStr("看来,这一层的认知滤网失效了啊......");
		CoutStr("你现在有一句话的机会,获得他的好感。【作者提示:该选择会改变剧情的走向,请慎重选择。】");
		CoutStr("A.什么也不说。");
		CoutStr("B.你是谁?");
		CoutStr("C.你是门口的血字?");
		if(thing[5]==-1){
			CoutStr("D.你是“B”?");
			CoutStr("E.你不是死了吗?");
		}
		end();
		while(1){
			if(_kbhit()){
				char ch=_getch();
				ch=hl(ch);
				if(ch=='A'||ch=='B'||ch=='C'){
					start();
					CoutStr("什么也没发生。");
					end();
					break;
				}
				else if(thing[5]==-1&&ch=='D'){
					start();
					CoutStr("你认识我?何出此言?");
					CoutStr("B 好感等级:1");
					end();
					thing[7]=1;
				}
				else if(thing[5]==-1&&ch=='E'){
					start();
					CoutStr("不错,很谨慎,你有机会出去。");
					CoutStr("B 好感等级:2");
					thing[7]=2;
					if(!cj[2]){
						CoutStr("获得成就:我就是Ayin本人");
						inal();
						cj[2]=1;
					}
					CoutStr("既然你对规则的把控如此熟练,我就告诉你一些事吧。");
					CoutStr("我知道你可能不信,但是听我说一句话:");
					CoutStr("A.听");
					CoutStr("B.不听");
					end();
					while(1){
						if(_kbhit()){
							char ch=_getch();
							ch=hl(ch);
							if(ch=='A'){
								start();
								CoutStr("你是外来者。");
								inal();
								CoutStr("下面是这里最核心的秘密,希望你能听。");
								CoutStr("1.这里并不是不可逃离的,我发现了逃脱的方法。那张纸条被Angela修改过。");
								CoutStr("2.Angela在T0,T0很危险,需要在T4,T5,T6分别找到一个东西,才能打败她。");
								CoutStr("3.T4的东西在我手上,可是我只剩一个灵魂了,等会听我的,我给你指路。");
								CoutStr("4.T5,T6的东西被Angela藏起来了,她会用一些“障眼法”,细心一点。");
								inal();
								Level4();
							}
							else if(ch=='B'){
								start();
								CoutStr("好吧,但是,不要对自己过度自信哦。");
								CoutStr("B 好感等级:1");
								end();
								thing[7]=1;
								Level4();
							}
						}
					}
				}
			}
		}
		chos9();
	}
	else{
		start();
		CoutStr("你决定:");
		CoutStr("A.搜寻附近。");
		CoutStr("B.看看这是几楼。");
		CoutStr("C.前往楼下。");
		CoutStr("D.前往楼上。");
		CoutStr("E.看看时间。");
		CoutStr("F.寻求帮助。");
		tim+=30;
		if(jl<=-1) end7();
		if(bsd<=-1) end6();
		if(bsd<=5) CoutStr("你快要饿死了。");
		else if(bsd<=10) CoutStr("你感觉很饿。");
		if(jl<=5) CoutStr("你快要累死了。");
		else if(jl<=10){
			if(jl%3==0) danger++;
			CoutStr("你累了。");
		}
		if(tim%100>=60){
			if(amlhas)amlhas++;
			tim+=40;
		}
		if(tim/100>=24){
			tim-=2400;
			day++;
		}
		if(danger>=3){
			CoutStr("一些烦躁的情绪出现在你心里。");
			thing[9]=-1;
		}
		if(danger>=7){
			int animal=rand()%max((100-danger*5),1);
			if(animal<=5){
				CoutStr("你看见了兔子。");
				amlhas=1;
			}
		}
		if(amlhas>=5) end5();
		end();
		while(1){
			if(_kbhit()){
				char ch=_getch();
				ch=hl(ch);
				if(ch=='A'){
					chos9();
					Level4();
				}
				else if(ch=='B'){
					Get_Level();
					Level4();
				}
				else if(ch=='C'){
					Level5();
					break;
				}
				else if(ch=='D'){
					Level3();
					break;
				}
				else if(ch=='E'){
					Get_Time();
					Level4();
				}
				else if(ch=='F') help(4);
			}
		}
	}
}
void Level3(){
	level=3;
	start();
	CoutStr("你来到了某个楼层。这里不同于其他楼层,看上去像一个......美食街?你知道这样形容并不恰当,可你看见了两旁一大堆食品店......");
	CoutStr("你决定:");
	CoutStr("A.搜寻附近。");
	CoutStr("B.看看这是几楼。");
	CoutStr("C.前往楼下。");
	CoutStr("D.前往楼上。");
	CoutStr("E.看看时间。");
	CoutStr("F.寻求帮助。");
	mciSendString("pause 打字.mp3",NULL,0,NULL);
	tim+=30;
	bsd--;
	jl--;
	if(jl<=-1) end7();
	if(bsd<=-1) end6();
	if(bsd<=5) CoutStr("你快要饿死了。");
	else if(bsd<=10) CoutStr("你感觉很饿。");
	if(jl<=5){
		CoutStr("你快要累死了。");
	}
	else if(jl<=10){
		if(jl%3==0) danger++;
		CoutStr("你累了。");
	}
	if(tim%100>=60){
		if(amlhas) amlhas++;
		tim+=40;
	}
	if(tim/100>=24){
		tim-=2400;
		day++;
	}
	if(danger>=3){
		CoutStr("一些烦躁的情绪出现在你心里。");
		thing[9]=-1;
	}
	if(danger>=7){
		int animal=rand()%max((100-danger*5),1);
		if(animal<=5){
			CoutStr("你看见了兔子。");
			amlhas=1;
		}
	}
	if(amlhas>=5) end5();
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				chos4();
				Level3();
			}
			else if(ch=='B'){
				Get_Level();
				Level3();
			}
			else if(ch=='C'){
				Level4();
				break;
			}
			else if(ch=='D'){
				Level2();
				break;
			}
			else if(ch=='E'){
				Get_Time();
				Level3();
			}
			else if(ch=='F') help(1);
		}
	}
}
void chos2(){
	start();
	bsd--;
	jl--;
	CoutStr("纸条上写了一些东西。");
	CoutStr("欢迎游客来到IOI商场,为了您的购物体验,请遵守以下规则。");
	SetColor(Color::Red);
	CoutStr("1.请不要尝试离开商场,商场是安全的。");
	SetColor(Color::DefaultColor);
	CoutStr("2.商场内仅有6层,且分别为T1,T2,T3,T4,T5,T6,不存在 T 0!");
	CoutStr("3.商场内可能会出现一些奇怪的现象,这种现象通常从T1至T6变多,若你感到心态崩溃,请寻找我们的工作人员帮助。");
	CoutStr("4.我们的工作人员分为3种:1.蓝衣IOI工作人员,你可以找他解决普通的问题。");
	CoutStr("5.我们的工作人员分为3种:2.蓝衣IOI委员会主席,你可以找他解决大部分问题,但他不喜欢被打扰,你只有2次机会。");
	CoutStr("6.我们的工作人员分为3种:3.红衣IOI委员会会长,你可以找他解决所有问题,但他不喜欢被打扰,你只有AK IOI(AKIOI,指去过所有楼层)才有可能获得他的帮助。");
	CoutStr("7.通常,工作人员的身份牌佩戴在胸前。若某工作人员“信息不完善”或衣服颜色不对,请勿寻求帮助。");
	CoutStr("8.商场内没有动物,若你看见了,一定是看错了,请尽快回到T2。");
	CoutStr("9.商场的食物区位于T3。");
	CoutStr("10.T1是绝对安全的。");
	CoutStr("11.商场的食物无处不在。");
	CoutStr("12.小心你的家人。");
	CoutStr("13.商场除你以外没有人。但是请与他们说话。");
	CoutStr("14.T4有一些“有趣的东西”,如果找到并带给IOI委员会会长,可能有一些奖励。");
	SetColor(Color::Red);
	CoutStr("15.想办法,这些都是...!(好像被人涂掉了)");
	SetColor(Color::DefaultColor);
	CoutStr("15.可以破坏公物,但要照价赔偿。");
	SetColor(Color::Red);
	CoutStr("16.1......D.......3......(好像被人涂掉了)");
	SetColor(Color::DefaultColor);
	CoutStr("纸条看完了,你注意到了纸条下渗出了一些东西,你决定:");
	CoutStr("A.撕下来。");
	CoutStr("B.进入商场。");
	mciSendString("pause 打字.mp3",NULL,0,NULL);
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				end1();
				break;
			}
			else if(ch=='B'){
				CoutStr("你进入了商场。");
				system("pause");
				Level2();
				break;
			}
		}
	}
}
void chos1(){
	CoutStr("A.看看吧。");
	CoutStr("B.进入商场。");
	mciSendString("pause 打字.mp3",NULL,0,NULL);
	while(1){
		if(_kbhit()){
			char ch=_getch();
			ch=hl(ch);
			if(ch=='A'){
				chos2();
				break;
			}
			else if(ch=='B'){
				Level2();
				break;
			}
		}
	}
}
void chapter1(){
	maxchapter=max(maxchapter,1);
	CoutStr("第一章商场怪谈");
	cs=2;
	danger=0;
	sw=0;
	amlhas=0;
	tim=800;
	bsd=20;
	day=0;
	jl=20;
	for(int i=1;i<=13;i++) thing[i]=0;
	for(int i=15;i<=15;i++) thing[i]=0;
	thing[17]=-1;
	thing[6]=-1;
	inal();
	CoutStr("商场门口贴着一张纸条。");
	CoutStr("你意识到你需要做些什么。");
	chos1();
	return ;
}
void cp2paper1(){
	CoutStr("规则漂浮在你身前。");
	CoutStr("动物园规则:");
	CoutStr("欢迎游客来到全市最大的动物园!");
	CoutStr("我们拥有全市的所有动物!任你观赏!");
	CoutStr("相信您在游览过程中,一定会全程带着微笑!");
	CoutStr("但是,为了您有一个愉快的游览过程,请遵守本规则:");
	CoutStr("1.动物园没有兔子。");
	CoutStr("2.必要时刻,你可以牺牲任何动物。");
	CoutStr("3.不能杀人。");
	CoutStr("4.本动物园没有海洋馆。");
	CoutStr("5.请保证你是人,无论外貌或是心里。");
	CoutStr("6.狮子只有4头,如果您发现了5头,请请求工作人员帮助。");
	CoutStr("7.当你遇到无法解决的问题时,请向天空大声喊:“帮帮我,Ayin先生!”");
	SetColor(Color::Red);
	CoutStr("8.你只有1次机会。");
	SetColor(Color::DefaultColor);
	CoutStr("9.本动物园不出售与动物有关的任何东西。");
	SetColor(Color::Red);
	CoutStr("10.终焉时......");
	SetColor(Color::DefaultColor);
	inal();
	CoutStr("你看完了规则。");
}
void chapter2(){
	maxchapter=max(maxchapter,2);
	memset(thing,0,sizeof(thing));
	danger=0;
	sw=0;
	tim=800;
	bsd=20;
	day=0;
	jl=20;
	CoutStr("第二章动物园怪谈");
	CoutStr("你AK了IOI后就来到了一个动物园门口。");
	CoutStr("常年看规则怪谈的的你十分熟悉这个怪谈。");
	CoutStr("你认为这是来送分的。");
	inal();
	CoutStr("但......");
	inal();
	CoutStr("真的是这样吗?");
	CoutStr("你真的能AK NOIP吗???");
	cp2paper1();
	return ;
}
int main(void){
	thing[14]=-1;
	srand(time(0));
	chapter0();
	return 0;
}
2024/8/23 18:33
加载中...