C++小游戏 如果你被困在3月18日

直接

#include<bits/stdc++.h>
#include<windows.h>
#define cl system("cls")
#define qwq 1500
#define awa 1000
using namespace std;
int n;//选择 
string k="human",s;//身份 
bool flaghelper,helperfalse;
bool cdj1,zj1,cdj2,cdj3,nor;
bool success;//成功 

void panding();
void false1();
void true1();
void normal(); 
void cd1();
void cd2();
void cd3();
void xh1();
void xh2();
void xh3();
void xh4();
void p(string s,int b1,int b2);

int main()
{
    if (success) return 0;
    p("[互动视频] 如果你被困在了3月18日",50,qwq);
    p("这是一个带有B站特色互动的游戏",50,awa);
    p("本游戏灵感来源:bilibili @GoldenEggs(思路)",50,qwq);
    p("切记,此游戏不仅考验耐心,更考验心态!!!",50,qwq);cl;
    p("进入正题",500,qwq);cl;
    xh1();
    return 0;
}

void p(string s,int b1,int b2)
{
    for (int i=0;i<s.size();++i)
     cout<<s[i],Sleep(b1);
    cout<<endl;
    Sleep(b2);
}

void xh1()
{
    p1:while(k=="human")
    {
        p("第一循环",50,qwq),cl;
        p("今天是3月18日,你如往常一般起了床,吃过不错的早餐",50,awa);
        p("你准备出门了,哪知,门外的东西并不寻常。。。。。。",50,awa);
        p("面前,是一块牌子,上面写着:千万不要回头!!!",50,awa);
        p("此时,你选择:1、听牌子的话往前走。2、回头看看,我超勇的!",50,awa);
        cin>>n;
        if (n==2)
        {
             p("你一回头,一个恐怖的脸出现在你面前。。。。。。随后,那个人一剑砍下了你的头颅。",50,qwq);cl;
             goto p1;
        }
        cl;
        p("你跟随牌子继续向前,忽然间,看到一个黑影向你招手,手中还拿着一个蛋,仿佛在叫你过去。",50,awa);
        p("你选择:1、跟过去。2、不跟过去",50,awa);
        cin>>n;cl;
        if (n==2)
        {
            p("你觉得这个人有些可疑,你选择:",50,awa);
            p("1、不管他。2、杀掉他(20%成功率)",50,awa);
            cin>>n;cl;
            if (n==2)
            {
                srand(time(0));
                int t=rand()%10;
                if (t==3||t==7)
                {
                    p("你成功杀掉了那个人",50,awa);
                    p("你的身份现在为:杀手",50,qwq);cl;
                    k="killer";
                    xh2();
                }
                else
                {
                    p("你失败了,返回第一循环。",50,qwq);cl;
                    goto p1;
                }
            }else
            {
                p("你被那个人无情的杀死了.返回第一循环",50,qwq);cl;
                goto p1;
            }
        }
        p("你跟了过去,来到了一个奇怪的地方,你看了看指示牌,写着:生命之树",50,awa);
        p("你看到那个神秘人利用生命之树周围旋转的楼梯爬了上去,于是,你也紧跟着",50,awa);
        p("经过一段时间的攀爬,你来到了顶端,神秘人就在前方不远,你快步前行,来到他身边",50,awa);cl;
        p("你对神秘人说:你是谁,在这里干什么?",50,awa);
        p("神秘人的回答很简单:'救赎'",50,awa);
        p("请选择:1、把它打下去,2、相信他。",50,qwq);
        cin>>n;cl;
        if (n==2)
        {
            p("你放走了那个神秘的人",50,awa);
            p("你的身份现在为:守护者",50,qwq),cl;
            k="guardian";
            xh4();
        }
        p("你认为他的话不可信,于是你把它揍了下去。",50,awa);
        p("随后,你猛地一回头,发现了一个传送门,你选择:",50,awa);
        p("1、跳下去。2、有危险,还是别跳了吧。",50,awa);
        cin>>n;cl;
        if (n==2)
        {
            p("你回头,发现一个人站在你身后。你一个后空翻躲过他的攻击,随后夺走了他的武器。",50,awa);
            p("你的身份现在为:杀手",50,qwq);cl;
            k="killer";
            xh2();
        }
        p("你跳了进去,一阵头晕目眩过后,看到了一张图,上面写着:记录",50,awa);
        p("A不回头,C刺A失败,B杀C失败,C毒A失败,C射A失败,A杀C",50,awa);
        p("现在,请选择:1、成为救兵(80%几率)。2、不成为救兵",50,awa);
        cin>>n;cl;
        if (n==2) goto p1;
        srand(time(0));
        int t=rand()%10;
        if (t==2||t==8) flaghelper=false;
        p("你的身份现在为:救兵",50,awa);
        k="helper";
        xh3();
    }
    return;
} 

void xh2()
{
    p2:while(k=="killer")
    {
        int kill=0,unkill=0;
        p("第二循环",50,qwq);cl;
        p("今天是3月18日,你如往常一般起了床,吃过不错的早餐",50,awa);
        p("你准备出门了,哪知,门外的东西并不寻常。。。。。。",50,awa);cl;
        p("面前,是一块牌子,上面写着:千万不要回头!!!",50,awa);
        p("此时,你选择:1、听牌子的话往前走。2、回头看看,我超勇的!",50,awa);
        cin>>n;cl;
        if (n==2)
        {
            p("你回头,一个恐怖的脸出现在你面前。。。。。。",50,awa);
            p("请选择:1、逃离,2、杀了他!",50,awa);
            cin>>n;cl;
            if (n==1) ++unkill;
            if (n==2) ++kill;
        }
        p("你跟随牌子继续向前,忽然间,看到一个黑影向你招手,手中还拿着一个蛋,仿佛在叫你过去。",50,awa);
        /*p("你选择:1、跟过去。2、不跟过去",50,awa);cin>>n;cl;
        if (n==2)
        {
            p("你觉得这个人有些可疑,你选择:",50,awa); p("1、不管他。2、杀掉他(40%成功率)",50,awa);
            cin>>n;cl;if (n==2)
            {srand(time(0));if (t==3||t==7||t==1||t==5){
            p("你成功杀掉了那个人",50,awa);
            ++kill;}
            else{
          p("你失败了,返回第二循环。",50,qwq);cl; goto p2; }
            }else{
            p("你被那个人无情的杀死了.返回第二循环",50,qwq);cl;goto p2;}
        }*///剧情不合逻辑 于2020.3.23删除 
        p("你跟着他来到了一个奇怪的地方,你看了看指示牌,写着:生命之树",50,awa);
        p("你看到那个神秘人利用生命之树周围旋转的楼梯爬了上去,于是,你也紧跟着",50,awa);
        p("经过一段时间的攀爬,你来到了顶端,神秘人就在前方不远,你快步前行,来到他身边",50,qwq);cl;
        p("你对神秘人说:你是谁,在这里干什么?",50,awa);
        p("神秘人的回答很简单:'救赎'",50,awa);
        p("你选择:1、把他打下去(70%成功率)。2、相信他",50,awa);
        cin>>n;cl;
        if (n==2)
        {
            p("你放过了他。",50,awa);
            p("你的身份现在为:守卫杀手",50,qwq);
            k="gkiller";
            //xh6();
        }
        srand(time(NULL));
        int t=rand()%10;
        if (t==2||t==8||t==7) 
        {
            p("你没能成功的杀掉他!",50,qwq);
            goto p2;
        }
        ++kill;
        p("你认为他的话不可信,于是你把它揍了下去。",50,awa);
        p("随后,你猛地一回头,发现了一个传送门,你选择:",50,awa);
        p("1、跳下去。2、有危险,还是别跳了吧。",50,awa);
        cin>>n;cl;
        if (n==2)
        {
            p("你回头,却被飞来的箭射杀了",50,qwq);cl;
            goto p2;
        }
        p("你跳了进去。",50,awa);
        if (kill==2) cd1();
        else
        p("你感到内心开始颤抖,或许,你到底是不是杀手呢?",50,qwq);cl;
        p("进入抉择阶段,10%概率回到人类,80%变成勇者,10%变成守卫",50,qwq);cl;
        srand(time(NULL));
        int t1=rand()%10;
        if (t1==5)
        {
            p("事实证明,你其实还是一个人类!",50,awa);cl;
            p("你的身份现在为:人类!",50,qwq);
            k="human";
            xh1();
        }
        if (t1==3)
        {
            p("实际上,你并不想杀人,相反,你还想去保护别人",50,awa);cl;
            p("你的身份现在为:守卫",50,qwq);
            k="guardian";
            xh4();
        }
        p("看来,你确实能力非凡。。。。。。",50,awa);
        p("你的身份现在为:暗杀者",50,qwq);
        k="darkkiller";
        //xh5();
    }
    return;
}

void cd1()
{
    p("恭喜你,触发彩蛋结局!",50,qwq);cl;
    p("你的最终身份为: 杀戮神!",50,qwq);
    p("触发条件:在身份为杀手时杀掉所有的人!",50,qwq);
    p("循环结束,你打破了循环。",50,qwq);
    p("恭喜达成彩蛋结局1!",50,qwq);cl;
    cdj1=true;
    panding();
}

void xh3()
{
    while(k=="helper")
    {
        p("第三循环",50,qwq);cl;
        p("今天是3月18日,你如往常一般起了床,吃过不错的早餐",50,awa);
        p("你准备出门了,哪知,门外的东西并不寻常。。。。。。",50,awa);
        p("门口有一堆泥土,背后还传来了阵阵响声",50,awa);cl;
        p("你赶忙躲到泥土后面,看到一个奇怪的身影向着一个熟睡的人跑了过去,并暗暗潜藏",50,awa);
        p("于是,你决定:1、拯救那个人 2、置之不理",50,awa);
        cin>>n;cl;
        if (n==2)
        {
            p("你眼睁睁看着那个人起来,走出门外,感到奇怪的回头,死于神秘人的刀下",50,awa);
            p("你的内心也遭到了打击。这种心情,促使你也加入了神秘人。。。。。。",50,awa);
            p("你的身份现在为:杀手!",50,qwq);cl;
            k="killer";
            xh2();
        }
        p("你在土堆上放了一个告示牌,写上:“不要回头!!!”",50,awa);
        p("随后,那人醒了,看到了这个告示牌,决定不回头,于是,你选择:",50,awa);
        p("1、拿出一个蛋来勾引他。2、让他自生自灭吧,看他造化",50,awa);
        cin>>n;cl;
        if (n==2)
        {
            p("你被那个人跟过来,杀掉了",50,awa);
            p("你的身份现在为:人类!",50,qwq);cl;
            xh1();
        }
        if (flaghelper==false) 
        {
            p("营救失败了!",50,awa);
            p("你的身份现在为:人类!",50,qwq);cl;
            xh1();
        }
        p("你继续勾引着,来到了一个奇怪的地方,你看了看指示牌,写着:生命之树",50,awa);
        p("你利用生命之树周围旋转的楼梯爬了上去,于是,那个人也紧跟着",50,awa);
        p("经过一段时间的攀爬,你来到了顶端,那个人就在后方不远,他快步前行,来到你身边",50,qwq);cl;
        p("那个人对你说:你是谁,在这里干什么?",50,awa);
        if (!helperfalse)
        {
            p("请选择:1、告诉。。。真相?",50,awa);
            cin>>n;cl;
            p("没想到,那个人不但不理会,还直接把你打了下去。。。。。。",50,qwq);cl;
            false1();
        }
        else
        {
            p("请选择:1、告诉。。。真相?2、算了,跳下去!",50,qwq);
            cin>>n;cl;
            if (n==1)
            {
                p("没想到,那个人不但不理会,还直接把你打了下去。。。。。。",50,qwq);cl;
                false1();
            }
            else
            {
                srand(time(NULL));
                int t=rand()%100;
                if (t==24) cd2();
                true1();
            }
        }
    }
}

void false1()
{
    p("恭喜你,达成假结局!",50,awa);
    p("请不要灰心,还有很多等着你去探索呢!",50,qwq);cl;
    p("你的身份现在为:人类!",50,qwq);cl;
    k="human";
    helperfalse=true;
    xh1();
}

void true1()
{
    p("你毅然决然的跳了下去,但出乎你意料的是:底下有一片水塘!你不偏不倚的掉在水塘中。。。。。。",50,qwq);cl;
    p("恭喜你,达成真结局!",50,qwq);cl;
    p("你的身份为:救兵!",50,awa);cl;
    zj1=true;
    panding();
}

void cd2()
{
    p("你掉了下去,可是,下面突然生成了一个虫洞!你被吸了进去。。。。。。",50,qwq);cl;
    p("伴随一阵眩晕,你掉在了地上。",50,awa);
    p("面前,是两个人在说话:",50,awa);cl;
    p("A:不是,我就是个演员,就演一个人类都这么艰难= =",50,awa);
    p("B:切,我当杀手的比你难多了啊!",50,awa);
    p("你清醒了过来,接了一句:“我呢? ”",50,awa);
    p("你们一起开心的笑了。",50,qwq);cl;
    p("恭喜你,达成彩蛋结局,同时,这是完美的结局之一!",50,awa);
    p("你的最终身份为:救世神!",50,qwq);
    p("这个结局的达成方式:跳下去的时候1%的几率达成!",50,qwq);cl;
    p("恭喜你,拥有欧皇气息!也恭喜你,达成彩蛋结局2!",50,qwq);cl;
    panding();
}

void xh4()
{
    int Guard=0;
    while(k=="guardian")
    {
        p("今天是3月18日,你如往常一般起了床,吃过不错的早餐",50,awa);
        p("你准备出门了,哪知,门外的东西并不寻常。。。。。。",50,awa);
        p("你看到一个人正在被另一个人追杀,而前面又有一个人在吸引着。",50,qwq);cl;
        p("你决定:1、守护被追杀的人。2、守护追杀的那个人",50,awa);
        cin>>n;cl;
        if (n==2)
        {
            ++Guard;
            if (Guard>=5)
            {
                srand(time(NULL));
                int t=rand()%20;
                if (t==17) cd3();
            }
            p("你将你的能力倾注于那个人身上,但是,有一股神秘的力量,将你的能力尽数反弹,使你失去了能力!",50,awa);
            p("你的身份现在为:人类!",50,awa);
            k="human";cl;
            xh1();
        }
        p("你守护了被追杀的人。",50,awa);cl;
        p("你看见他一步一步被一个神秘人带上了生命之树,于是,你决定",50,awa);
        p("1、告诉。。。真相(你是守卫,可以通过心灵沟通)?2、算了,静观其变",50,awa);
        cin>>n;cl;
        if (n==1)
        {
            p("你告诉了他真相,于是他挥剑,将那个神秘人打落悬崖。",50,qwq);cl;
            p("你的身份现在为:救兵!",50,awa);
            k="helper";cl;
            xh3();
        }
        normal(); 
    }
}

void cd3()
{
    p("你将你的能力倾注于那个人身上,但是,有一股神秘的力量,将你的能力尽数反弹",50,awa);
    p("你被突如其来的变化震惊到了,随后被击倒在地。",50,awa);
    p("过了很久。。。。。。",50,awa);
    p("你:哇,头好晕,这里是哪里?",50,awa);
    p("一个神秘的声音传来:红之秘境-无夜镇。",50,qwq);cl;
    p("恭喜你,达成彩蛋结局:红之秘境-无夜镇!",50,awa);
    p("这应该是最难达成的彩蛋结局了吧QAQ",50,awa);
    p("达成方式:守卫守追杀者5次以上5%概率达成",50,awa);
    p("能达成这个结局的人,真的是持之以恒呢",50,awa);
    p("对了,悄悄告诉你,红之秘境是彩蛋中的彩蛋哦,具体是什么,嘿嘿嘿XD",50,qwq);cl;
    p("你的最终身份是:守卫!",50,qwq);cl;
    cdj3=true;
    panding();
}

void normal()
{
    p("那个人并没有将神秘人打落深渊,而是选择了放过他。这一切,被你尽收眼底。",50,qwq);cl;
    p("恭喜达成:普通结局!",50,awa);
    p("你的最终身份是:守卫!",50,qwq);
    nor=true;
    panding();
}

void panding()
{
    if (cdj1&&zj1&&cdj2&&cdj3&&nor)
    {
        success=true;
        p("你已经达成了所有的结局!",50,qwq);cl;
        p("恭喜你打破了循环!",50,qwq);cl;
        p("游戏结束!",50,10000);cl;
        Sleep(20000);
        p("哦吼,你居然还没走。",50,qwq);
        p("那么。。。。。嘿嘿嘿",50,qwq);cl;
        p("今天是3月19日,你如往常一般起了床,吃过不错的早餐",50,qwq);cl;
        Sleep(35000);
        p("好了好了你居然还没有走。那么恭喜你,找到隐藏成就:耐心者!",50,qwq);
        p("恭喜,你圆满完成了游戏!",50,qwq);cl;
        for (int i=1;i<=100;++i)
        {
            Sleep(300);
            s="\n";
            if (i==30) s="                     如 果 你 永 远 被 困 在 了 3 月 1 8 日                                          \n";
            if (i==40) s="                                made by Gspxz                                                        \n";
            if (i==50) s="         原帖地址https://www.luogu.com.cn/blog/Allstars-We1lessz/3-yue-18-ri                         \n";
            if (i==60) s="                    本游戏灵感来源:bilibili @GoldenEggs(思路)                                        \n";
            if (i==70) s="                        杜绝抄袭,支持原版,从我做起!                                               \n";
            if (i==85) s="                     T    H    E              E    N    D                                            \n";
            cout<<s;
        }
        main();
    }
    else
    {
        p("你还没有达成每个结局哦",50,awa);
        p("将为您传送到第一循环",50,qwq);cl;
        p("你的身份现在为:人类",50,qwq);cl;
        k="human";
        xh1();
    }
    return;
}

求点赞加关注!!!! 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值