规则怪谈游戏(我对@zjw806903这位大佬的代码经行了一点修改,还得感谢原创,大家也可一直接去他的主页找 就当我是帮他做个小广告啦):
//在连接器命令行加入以下指令 -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;
}