规则怪谈第一天

· · 个人记录

现存BUG已修,若发现新BUG请留言

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
struct wupin{
    int s;
    string name; 
}w[7];
int x=40,n,lizhi=100,a[21],s,t;
string str[6]={"1.每天午夜12点都会更新一条新的实体规则,违反者,死!","2.每当规则更新,上一条规则自动作废。","3.探索楼道有机会获得一些意想不到的东西。","4.电梯很危险,请不要轻易乘坐。","5.除非得到特定物品,否则千万不要离开社区!","6.7天后,依然存活的居民可以安全离开。"};
int Rand(int a,int b){
    int f=(rand()+time(NULL)+a)%(b-a+1)+a;
    return f;
}
void print(string s){
    for(int i=0;i<s.size();i++){
        cout<<s[i];
        Sleep(x);
    }
    printf("\n");
}
void prin(string s){
    for(int i=0;i<s.size();i++){
        cout<<s[i];
        Sleep(x);
    }
}
bool puzzle(int f){
    if(f==1){
        print("只见眼前忽然出现一道题目:1+1=2 2+2=4 3+4=30 1+3+5=?");
        cin>>n;
        if(n==127) return true;
        else return false;
    }
    else if(f==2){
        print("只见眼前忽然出现一道题目:1*3=4 2*3=8 3*7=22 4*6=27 5*5=?");
        cin>>n;
        if(n==26) return true;
        else return false; 
    }
}
void sc(){
    w[1].name={"时光回溯器"};
    w[2].name={"时光暂停器"};
    w[3].name={"理智恢复器"};
    w[4].name={"炸弹"};
    w[5].name={"生锈的钥匙"};
    w[6].name={"泛黄的纸"}; 
}
int main(){
    sc(); 
    system("color 0C");
    cout<<"规则怪谈\n";
    cout<<"  之";
    x=100;
    print("公寓惊魂");
    x=40;
    Sleep(2000); 
    system("cls");
    cout<<"理智:"<<lizhi<<" 第"<<s<<"天"<<endl;
    system("color 0F");
    print("午夜十二点,正在熬夜打游戏的你看到了群里物业发的消息");
    system("pause");
    system("cls");
    cout<<"理智:"<<lizhi<<" 第"<<s<<"天"<<endl;
    print("物业:今天千万,千万不要睡超过五小时!");
    system("pause");
    system("cls");
    cout<<"理智:"<<lizhi<<" 第"<<s<<"天"<<endl;
    print("你以为物业是在开玩笑,并没有理会,继续打你的游戏");
    system("pause");
    system("cls");
    cout<<"理智:"<<lizhi<<" 第"<<++s<<"天"<<endl;
    print("结果第二天上午,你惊讶地发现,楼下那些平时这个点上学的小孩都不见了,整个小区寂静的可怕");
    Sleep(300);
    print("这时,你的手机响了起来,是一个陌生的号码,你选择:");
    cout<<"1.接 2.不接\n";
    cin>>n;
    system("cls"); cout<<"理智:"<<lizhi<<" 第"<<s<<"天"<<endl;
    if(n==1){
        a[1]++; 
        system("color 0C");
        print("陌生人:不要相信任何人,说不定…他已经不是…你所认识的…他…了…");
        system("cls");
        cout<<"理智:"<<lizhi<<" 第"<<s<<"天"<<endl;
        system("color 0F");
        print("信号越来越弱,后面的话已经听不清了,只剩下滋滋的电流杂音。一时间,你犹豫不决,不知道该不该相信他说的话");
        system("pause"); 
        system("cls");
        cout<<"理智:"<<lizhi<<" 第"<<s<<"天"<<endl;
    }
    else print("你挂了电话。");
    print("今天的事很蹊跷,还是要谨慎一点。你这么想着"); 
    system("pause"); 
    system("cls");
    cout<<"理智:"<<lizhi<<" 第"<<s<<"天"<<endl;
    print("这时,门被敲响了。你选择:");
    cout<<"1.开 2.不开 3.透过猫眼往外看\n";
    cin>>n;
    if(n==1){
        system("color 0C");
        cout<<"你还是太莽撞了\n";
        cout<<"解锁结局:莽撞可不是好行为哟";
        exit(0); 
    }
    else if(n==2){
        print("敲门声响了半晌,最后伴着一阵脚步声渐渐消失了");
        print("你的眉头越皱越深,使劲拧在了一起");
    }
    else{
        print("你从猫眼里看到你的好兄弟李贺");
        if(a[1]!=0) print("你想到了那个陌生人的话。");
        print("到底开不开门呢");
        cout<<"1.开 2.不开\n";
        cin>>n;
        system("cls");
        cout<<"理智:"<<lizhi<<" 第"<<s<<"天"<<endl;
        if(n==1){
            system("color 0C");
            cout<<"呵呵,你还是太相信‘它’了…\n";
            if(a[1]) cout<<"解锁结局:有的时候熟人还没陌生人可信";
            else cout<<"解锁结局:有的时候熟人还没陌生人可信";
            exit(0);
        }
        else{
            print("他还在不停地敲着门。见你半天没反应,他喊道:“秦淮!开门!我有重大发现!”");
            print("你的心里一个激灵。既然他知道你的名字,这是否证明他没有问题?开不开门呢?");
            cout<<"1.开 2.不开\n";
            cin>>n;
            system("cls");
            cout<<"理智:"<<lizhi<<" 第"<<s<<"天"<<endl;
            if(n==1){
                int k=Rand(0,1);
                if(k==1){
                    system("color 0C");
                    cout<<"明明你前面都那么谨慎了,为什么还要给他开门呢…\n";
                    cout<<"解锁结局:有的时候熟人也不可信哟";
                    exit(0);
                }
                else{
                    print("李贺急急忙忙地冲了进来,大喊:“物业发的是真的!那条奇怪的规则是真的!”");
                    print("他端起家里的一杯水一口喝下,缓了一会继续说:“我刚才和隔壁李叔遇见了。他告诉我,他儿子莫名失踪了!而且我发现,熬夜工作、打游戏和起床在5点前的人都好好的,其他的人都莫名消失了!”");
                    print("你震惊地消化着这句话。还没等你缓过神来,他又说:“我先回去了,有事打我电话。要是除了我有人敲门,最好别开。这事儿很蹊跷,说不定很危险,保护好自己!”说罢,他便匆匆离开了"); 
                    system("pause");
                    system("cls");
                    cout<<"理智:"<<lizhi<<" 第"<<s<<"天"<<endl;
                    system("color 0E");
                    print("你平复了一下心情,细细思考了一下,发现李贺的话中有很多漏洞。首先,李贺温文尔雅,他是绝对不会直接拿起别人家的水就喝的。其次,他是怎么知道没熬夜的人都失踪的?虽然不排除他一家家问的情况,但可能性很小。再次,李贺聪明冷静,如果遇到这种情况他一定会选择与自己抱团取暖。总之,他的身上有很多疑点,暂且不要相信他为好。");
                    system("pause");
                    system("cls");
                    cout<<"理智:"<<lizhi<<" 第"<<s<<"天"<<endl;
                    system("color 0C");
                    print("可是,“它”为什么要这么做呢(理智-5)");
                    lizhi-=5;
                    a[1]++;
                }
            }
            else print("敲了一会儿,他失望的离开了"); 
        }
    }
    Sleep(1000);
    system("color 0F");
    system("cls");
    cout<<"理智:"<<lizhi<<" 第"<<s<<"天"<<endl;
    print("这时,物业发了新的消息:");
    system("cls");
    system("color 0C");
    cout<<"理智:"<<lizhi<<" 第"<<s<<"天"<<endl;
    print("物业:为了确保广大小区民众的安全,请务必遵守以下规则:");
    print(str[0]);
    print(str[1]);
    print(str[2]);
    print(str[3]);
    print(str[4]);
    print(str[5]);
    print("好了,规则就是这些,祝您安全离开!");
    system("pause");
    system("cls");
    print("看来,这些规则是真的…");
    Sleep(1000);
    system("color 0F");
    print("这条规则只是让我睡觉不要超过5小时,今天我已经睡了大概3小时,剩下的两小时要好好利用。");
    t=8;
    int r=2;
    while(t<24){
        system("cls");
        cout<<"理智:"<<lizhi<<" 第"<<s<<"天 "<<t<<":00"<<endl;
        int k=Rand(1,7);
        if(k==3){
            system("color 0C");
            cout<<"特殊事件发生!悖论启动!命运轮盘开始旋转!\n";
            int m=Rand(1,5);
            Sleep(500);
            cout<<"你的随机数为:";
            Sleep(500);
            cout<<m<<endl;
            Sleep(500);
            cout<<"事件:";
            if(m==1){
                print("嘹亮的钟声传来,你的心神开始恍惚(理智-10)");
                lizhi-=10;
                if(lizhi<=0){
                    system("cls");
                    system("color 0C");
                    cout<<"你的理智过低,沦为了一具行尸走肉…\n";
                    cout<<"解锁结局:被公寓催眠的人";
                    exit(0);
                }
            }
            else if(m==2){
                print("时光似乎扭曲了一下,回到了一小时前");
                t-=2;
            }
            else if(m==3){
                print("灯光开始闪烁不定,你有些害怕(理智-5)");
                lizhi-=5;
                if(lizhi<=0){
                    system("cls");
                    system("color 0C");
                    cout<<"你的理智过低,沦为了一具行尸走肉…\n";
                    cout<<"解锁结局:被公寓催眠的人"; 
                    exit(0);
                }
            }
            else if(m==4){
                if(puzzle(Rand(1,2))==true){
                    system("color 0A");
                    int kkksc03=Rand(1,4);
                    prin("回答正确!奖励");
                    print(w[kkksc03].name);
                    w[kkksc03].s++;
                }
                else{
                    system("color 0C");
                    print("回答错误!时光崩塌!惩罚:扣除任意一件时光法器");
                    if(w[1].s!=0&&w[2].s!=0){
                        int kkksc03=Rand(1,2);
                        w[kkksc03].s--;
                        prin("扣除");
                        print(w[kkksc03].name);
                    }
                    else if(w[1].s!=0){
                        w[1].s--;
                        prin("扣除");
                        print(w[1].name);
                    }
                    else if(w[2].s!=0){
                        w[2].s--;
                        prin("扣除");
                        print(w[2].name);
                    }
                    else{
                        cout<<"既然你没有,那我就不客气啦…\n";
                        cout<<"解锁结局:有的时候多存点货太重要了" ;
                        exit(0);
                    }
                }
            }
            else if(m==5){
                system("color 0C");
                print("怎么有婴儿的啼哭声从走廊传来…是我听错了吗?");
                cout<<"1.出去看看吧 2.还是算了吧\n";
                cin>>n;
                if(n==1){
                    int kkksc03=Rand(1,3);
                    if(kkksc03==1){
                        system("cls");
                        system("color 0C");
                        cout<<"呵呵,你还是太相信“它”了…\n";
                        cout<<"解锁结局:相信“它”的人都得死"; 
                        exit(0);
                    }
                    else{
                        int p=Rand(1,5);
                        prin("你成功救下了一只将死的猫,它很感激你,送了你一个");
                        print(w[p].name);
                        w[p].s++; 
                    }
                }
                else print("你似乎错过了什么…");
            }
            else{
                system("cls"); 
                system("color 0C");
                cout<<"你不会是想卡BUG吧…";
                exit(0);
            }
            Sleep(1000);
            system("color 0F");
        }
        else{
            cout<<"你可以:\n";
            cout<<"1.探索当前楼层\n";
            cout<<"2.使用电梯\n";
            cout<<"3.检查房间\n";
            cout<<"4.查看物品\n";
            cout<<"5.休息恢复理智(剩余次数:"<<r<<")\n";
            cout<<"6.";
            if(w[5].s!=0) cout<<"离开社区\n";
            else cout<<"得到特殊物品解锁\n";
            cin>>n;
            if(n==1){ 
                int m=Rand(1,7);
                if(m==2||m==4||m==7){
                    int p=Rand(1,4); 
                    prin("你获得了一个");
                    print(w[p].name);
                    w[p].s++;
                }
                else if(m==6){
                    print("你遇到了一个邻居,他向你打招呼,你:");
                    cout<<"1.打招呼 2.无视";
                    if(w[4].s!=0) cout<<" 3.拿炸弹炸死他";
                    printf("\n");
                    int f;
                    cin>>f;
                    if(f==1){
                        print("你张口的时候,理智忽然下降了20…");
                        lizhi-=20;
                        if(lizhi<=0){
                            system("cls");
                            system("color 0C");
                            cout<<"你的理智过低,沦为了一具行尸走肉…\n";
                            cout<<"解锁结局:被公寓催眠的人";
                            exit(0);
                        }
                    }
                    else if(f==2){
                        system("cls");
                        system("color 0C");
                        cout<<"别人和你打招呼却无视可是不礼貌的行为哟\n";
                        cout<<"解锁结局:要做一个礼貌的好孩子";
                        exit(0);
                    }
                    else if(f!=3||f==3&&w[4].s==0){
                        system("cls"); 
                        system("color 0C");
                        cout<<"你不会是想卡BUG吧…";
                        exit(0);
                    }
                    else{
                        print("邻居被炸死了");
                        w[4].s--; 
                    }
                }
                else print("你找了半天但一无所获");
            }
            else if(n==2){
                int p=Rand(1,2);
                if(p==1){
                    system("cls");
                    system("color 0C");
                    cout<<"电梯忽然失控,向下坠去…\n";
                    cout<<"解锁结局:你怎么能不听规则的呢"; 
                    exit(0); 
                }
                else{
                    if(puzzle(Rand(1,2))==true){
                        system("color 0A");
                        int kkksc03=Rand(1,4);
                        prin("回答正确!奖励");
                        print(w[kkksc03].name);
                        w[kkksc03].s++;
                    }
                    else{
                        system("color 0C");
                        print("回答错误!时光崩塌!惩罚:扣除任意一件时光法器");
                        if(w[1].s!=0&&w[2].s!=0){
                            int kkksc03=Rand(1,2);
                            w[kkksc03].s--;
                            prin("扣除");
                            print(w[kkksc03].name);
                        }
                        else if(w[1].s!=0){
                            w[1].s--;
                            prin("扣除");
                            print(w[1].name);
                        }
                        else if(w[2].s!=0){
                            w[2].s--;
                            prin("扣除");
                            print(w[2].name);
                        }
                        else{
                            cout<<"既然你没有,那我就不客气啦…\n";
                            cout<<"解锁结局:有的时候多存点货太重要了" ;
                            exit(0);
                        }
                    }
                }
            }
            else if(n==3){
                int m=Rand(1,4);
                if(m==1){
                    print("卧室里的镜子似乎有些异常。它说:“规则4是假的”。"); 
                    print("它眨了眨眼睛…"); 
                }
                if(m==2){
                    print("冰箱里有一些食物,你选择:");
                    cout<<"1.吃 2.不吃\n";
                    int p;
                    cin>>p;
                    if(p==1){
                        int kkksc03=Rand(1,3);
                        if(kkksc03==1){
                            print("食物变质了,你感到不适");
                            lizhi-=10;
                            if(lizhi<=0){
                                system("cls");
                                system("color 0C");
                                cout<<"你的理智过低,沦为了一具行尸走肉…\n";
                                cout<<"解锁结局:被公寓催眠的人";
                                exit(0);
                            } 
                        }
                        else{
                            print("食物真新鲜!连理智都恢复了不少了呢");
                            lizhi+=10;
                            if(lizhi>100) lizhi=100;
                        }
                    } 
                }
                if(m==3){
                    prin("家里的灯似乎坏了,一闪一闪的,怪恐怖的,");
                    int kkksc03=Rand(1,2);
                    if(kkksc03==1){
                        print("你费了好大的劲才修复它,耗了你10理智呢");
                        lizhi-=10;
                        if(lizhi<=0){
                            system("cls");
                            system("color 0C");
                            cout<<"你的理智过低,沦为了一具行尸走肉…\n";
                            cout<<"解锁结局:被公寓催眠的人";
                            exit(0);
                        }
                    }
                    else print("但你没有管它…");
                }
                if(m==4){
                    print("你在客厅发现了一张泛黄的纸,虽然它上面没有字,但你感觉它很有用");
                    w[6].s++; 
                }
            }
            else if(n==4){
                cout<<"你有:\n";
                for(int i=1;i<=6;i++){
                    if(w[i].s!=0) cout<<w[i].s<<"个"<<w[i].name<<"\n";
                }
                cout<<"可以使用:1.时光回溯器 2.时光暂停器 3.理智恢复器 0.离开\n";
                int p;
                cin>>p;
                if(p==0){
                    t--;
                    continue; 
                }
                if(w[p].s==0){
                    prin("你没有");
                    print(w[p].name);
                    t--;
                    continue; 
                }
                w[p].s--;
                if(p==1){
                    print("你回到了两小时前");
                    t-=3; 
                }
                else if(p==2){
                    print("时光暂停三小时!");
                    Sleep(1000);
                    system("cls");
                    for(int i=1;i<=3;i++){
                        cout<<"理智:"<<lizhi<<" 第"<<s<<"天 "<<t<<":00"<<endl;
                        cout<<"你可以:\n";
                        cout<<"1.探索当前楼层\n";
                        cout<<"2.使用电梯\n";
                        cout<<"3.检查房间\n";
                        cout<<"(当前状态无法查看物品)\n";
                        cout<<"4.休息恢复理智(当前状态不限次数)\n";
                        int asd;
                        cin>>asd;
                        if(asd==1){ 
                            int m=Rand(1,3);
                            if(m==2){
                                int sa=Rand(1,4); 
                                prin("你获得了一个");
                                print(w[sa].name);
                                w[sa].s++;
                            }
                            else print("你找了半天但一无所获");
                        }
                        else if(asd==2){
                            int ask=Rand(1,2);
                            if(ask==1){
                                system("cls");
                                system("color 0C");
                                cout<<"电梯忽然失控,向下坠去…\n";
                                cout<<"解锁结局:你怎么能不听规则的呢"; 
                                exit(0); 
                            }
                            else{
                                if(puzzle(Rand(1,2))==true){
                                    system("color 0A");
                                    int kkksc03=Rand(1,4);
                                    prin("回答正确!奖励");
                                    print(w[kkksc03].name);
                                    w[kkksc03].s++;
                                }
                                else{
                                    system("color 0C");
                                    print("回答错误!时光崩塌!惩罚:扣除任意一件时光法器");
                                    if(w[1].s!=0&&w[2].s!=0){
                                        int kkksc03=Rand(1,2);
                                        w[kkksc03].s--;
                                        prin("扣除");
                                        print(w[kkksc03].name);
                                    }
                                    else if(w[1].s!=0){
                                        w[1].s--;
                                        prin("扣除");
                                        print(w[1].name);
                                    }
                                    else if(w[2].s!=0){
                                        w[2].s--;
                                        prin("扣除");
                                        print(w[2].name);
                                    }
                                    else{
                                        cout<<"既然你没有,那我就不客气啦…\n";
                                        cout<<"解锁结局:有的时候多存点货太重要了" ;
                                        exit(0);
                                    }
                                }
                            }
                        }
                        else if(asd==3){
                            int m=Rand(1,3);
                            if(m==1){
                                print("冰箱里有一些食物,你选择:");
                                cout<<"1.吃 2.不吃\n";
                                int p;
                                cin>>p;
                                if(p==1){
                                    int kkksc03=Rand(1,3);
                                    if(kkksc03==1){
                                        print("食物变质了,你感到不适");
                                        lizhi-=10;
                                        if(lizhi<=0){
                                            system("cls");
                                            system("color 0C");
                                            cout<<"你的理智过低,沦为了一具行尸走肉…\n";
                                            cout<<"解锁结局:被公寓催眠的人";
                                            exit(0);
                                        }
                                    }
                                    else{
                                        print("食物真新鲜!连理智都恢复了不少了呢");
                                        lizhi+=10;
                                        if(lizhi>100) lizhi=100;
                                    }
                                } 
                            }
                            if(m==2){
                                prin("家里的灯似乎坏了,一闪一闪的,怪恐怖的,");
                                if(Rand(1,2)==1){
                                    print("你费了好大的劲才修复它,耗了你10理智呢");
                                    lizhi-=10;
                                    if(lizhi<=0){
                                        system("cls");
                                        system("color 0C");
                                        cout<<"你的理智过低,沦为了一具行尸走肉…\n";
                                        cout<<"解锁结局:被公寓催眠的人";
                                        exit(0);
                                    }
                                }
                                else print("但你没有管它…");
                            }
                            if(m==3){
                                print("你在客厅发现了一张泛黄的纸,虽然它上面没有字,但你感觉它很有用");
                                w[6].s++; 
                            }
                        }
                        else if(asd==4){
                            print("理智恢复了一些…");
                            lizhi+=10;
                            if(lizhi>=100) lizhi=100;
                        }
                        else{
                            system("cls"); 
                            system("color 0C");
                            cout<<"你不会是想卡BUG吧…";
                            exit(0);
                        }
                        system("cls");
                    }   
                }
                else if(p==3){
                    lizhi=100;
                    print("理智已回满!"); 
                }
                else{
                    system("cls"); 
                    system("color 0C");
                    cout<<"你不会是想卡BUG吧…";
                    exit(0);
                }
            }
            else if(n==5){
                if(r==0){
                    system("cls"); 
                    system("color 0C");
                    cout<<"你今天已经睡了五小时喽…";
                    cout<<"解锁结局:不听规则的下场";
                    exit(0);
                }
                else{
                    print("理智恢复了一些…");
                    lizhi+=10,r--;
                    if(lizhi>=100) lizhi=100;
                } 
            }
            else if(n==6){
                if(w[5].s==0) print("你还没有特殊道具…");
                else{
                    system("cls");
                    system("color 0A");
                    cout<<"你成功逃出了社区!\n";
                    cout<<"已解锁完美结局";
                    exit(0); 
                }
            }
            else{
                system("cls"); 
                system("color 0C");
                cout<<"你不会是想卡BUG吧…";
                exit(0);
            }
            Sleep(1500);
        }
        t++;
        system("cls");
        system("color 0F");
    }
    system("cls");
    cout<<"理智:"<<lizhi<<" 第"<<++s<<"天\n";
    print("午夜钟声响起,新的规则公布了…"); 
    return 0;
}