恐怖佩奇

· · 闲话

众所周知,恐怖佩奇是以视频为载体的。
但是如果我用C++实现了呢!?

代码如下:

#include <bits/stdc++.h>
#include <windows.h>
#include <fstream>
#define cls system("cls")
#define slp Sleep(1000)
using namespace std;

enum ConsoleColor {
    BLACK = 0,
    BLUE = 1,
    GREEN = 2,
    CYAN = 3,
    RED = 4,
    MAGENTA = 5,
    BROWN = 6,
    LIGHT_GRAY = 7,
    DARK_GRAY = 8,
    LIGHT_BLUE = 9,
    LIGHT_GREEN = 10,
    LIGHT_CYAN = 11,
    LIGHT_RED = 12,
    LIGHT_MAGENTA = 13,
    YELLOW = 14,
    WHITE = 15
};

void co(ConsoleColor color) {
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, color);
}

void fl1();
void fl2();
void peiqi();
void qiaozhi();
void zhubama();
void chufang();
void canting();
void chumen();
void chengjiu();
void cundang();
void jieshu();
void caishichang();
void cangku();
vector<int> suiji(int mod,int len);
bool pq, qz, men;
int dao, qiang, shengzi;
string a[2][100] = {
    "","",
    "死掉","未达成",
    "土豆泥","未达成",
    "小兔崽子给我亖","未达成",
    "小小佩奇","未达成",
    "小小猪爸妈","未达成"
};

int main() {
    co(RED);
    cout << "恐怖佩奇\n";
    slp;
    slp;
    co(GREEN);
    cout << "作者:hushuoyan(洛谷名)\n";
    slp;
    cout << "UID:1411725\n";
    slp;
    cout << "QQ号:3839183458\n";
    slp;
    cout << "留言板:https://note.ms/hushuoyankongbupeiqi(禁止破坏)\n";
    slp;
    cout << "Tips:全屏玩更有体验感哦!\n";
    slp;
    cout << "本人稀硝酸,四年级,制作不易,请勿吐槽!";
    slp;
    slp;
    slp;
    cls;
    co(MAGENTA);
    cout << "序言\n";
    slp;
    slp;
    co(RED);
    cout << "今天天气晴朗,你坐在草地上。\n";
    slp;
    cout << "你很无聊,百无聊赖的你准备去佩奇家里玩。\n";
    slp;
    cout << "一个路人跟你说了一句话,可是你没听见。\n";
    slp;
    cout << "于是你径直来到了佩奇家,突然想起了路人的话。\n";
    slp;
    slp;
    cout << "小猪佩奇家是最危险的地方,他们家个个是穷凶极恶的杀手,除了乔治。\n";
    slp;
    slp;
    cls;
    co(WHITE);
    fl1();
}

vector<int> suiji(int mod,int len){
    vector<int> x;
    for (int i = 1;i <= len;i++) x.push_back(rand() % mod);
    return x;
}

void fl1() {
    cout << "1楼\n你要去哪里?\n";
    co(RED);
    cout << "A.佩奇卧室\n";
    co(YELLOW);
    cout << "B.乔治卧室\n";
    co(LIGHT_GREEN);
    cout << "C.二楼\n";
    co(BLUE);
    cout << "D.出门(未更新)\n";
    co(MAGENTA);
    cout << "E.成就室(未更新)\n";
    co(WHITE);
    cout << "请输入大写字母\n";
    char c;
    cin >> c;
    cls;
    if (c == 'A')
        peiqi();
    if (c == 'B')
        qiaozhi();
    if (c == 'C')
        fl2();
    if (c == 'D')
        chumen();
    if (c == 'E')
        chengjiu();
}

void peiqi() {
    if (pq) {
        cout << "小心佩奇!\n你要干什么?\n";
        co(RED);
        cout << "A.开一点门缝瞅一眼\n";
        co(GREEN);
        cout << "B.打开门\n";
        co(WHITE);
        char c;
        cin >> c;
        cls;
        if (c == 'A') {
            cout << "你发现佩奇在床上睡觉\n你要干什么?\n";
            co(RED);
            cout << "A.关门离开\n";
            co(GREEN);
            cout << "B.打开门\n";
            co(WHITE);
            cin >> c;
            cls;
            if (c == 'A'){
                fl1();
            }
            if (c == 'B') {
                if (!(dao || qiang || shengzi)){
                    cout << "佩奇被吵醒了,把你";
                    co(RED);
                    cout << "干掉了\n";
                    co(WHITE);
                    slp;
                    cout <<"获得成就:死亡";
                    a[1][1] = "已达成";
                    slp;
                    cls;
                    jieshu();
                }else if (!(dao || qiang) && shengzi){
                    cout <<"你拿绳子绑住了佩奇,可佩奇挣脱了。\n";
                    cout <<"佩奇生气地把你";
                    co(RED);
                    cout <<"干掉了";
                    co(WHITE);
                    slp;
                    cls;
                    jieshu();
                }else if (dao){
                    cout <<"你拿刀把佩奇解决了。\n获得成就:小小佩奇";
                    a[4][1] = "已达成";
                    slp;
                    cls;
                    fl1();
                }else if (qiang){
                    cout <<"你拿枪把佩奇解决了。\n获得成就:小小佩奇";
                    a[4][1] = "已达成";
                    slp;
                    cls;
                    fl1();
                }
            }
            if (c == 'B') {
                if (!(dao || qiang || shengzi))
                    cout << "佩奇被吵醒了,把你";
                    co(RED);
                    cout << "干掉了\n";
                    co(WHITE);
                    slp;
                    cout <<"获得成就:死亡";
                    a[1][1] = "已达成";
                    slp;
                    cls;
                    jieshu();
                }else if (!(dao || qiang) && shengzi){
                    cout <<"你拿绳子绑住了佩奇,可佩奇挣脱了。\n";
                    cout <<"佩奇生气地把你";
                    co(RED);
                    cout <<"干掉了";
                    co(WHITE);
                    slp;
                    cls;
                    jieshu();
                }else if (dao){
                    cout <<"你拿刀把佩奇解决了。\n获得成就:小小佩奇";
                    a[4][1] = "已达成";
                    slp;
                    cls;
                    fl1();
                }else if (qiang){
                    cout <<"你拿枪把佩奇解决了。\n获得成就:小小佩奇";
                    a[4][1] = "已达成";
                    slp;
                    cls;
                    fl1();
                }
            }
    } else {
        co(MAGENTA);
        cout << "你还没有佩奇的钥匙呢";
        co(WHITE);
        slp;
        slp;
        cls;
        fl1();
    }
}

void qiaozhi() {
    if (qz) {
        cout << "乔治很友好。\n你要干什么?\n";
        co(RED);
        cout << "A.开一点门缝瞅一眼\n";
        co(GREEN);
        cout << "B.打开门\n";
        co(WHITE);
        char c;
        cin >> c;
        cls;
        if (c == 'A') {
            cout << "你发现乔治坐在床上\n你要干什么?\n";
            co(RED);
            cout <<";A.关门离开\n";
            co(GREEN);
            cout <<"B.打开门\n";
            char c;
            cin >> c;
            cls;
            if (c == 'A')
                fl1();
            if (c == 'B') {
                cout << "乔治坐在床上。他要告诉你一件事。他说:“别靠近猪爸妈。小羊苏西可以信任。”接着他把你推走了。";
                slp;
                slp;
                cls;
                fl1();
            }
        }
        if (c == 'B') {
            cout << "乔治坐在床上。他要告诉你一件事。他说:“别靠近猪爸妈。小羊苏西可以信任。”接着他给了你佩奇房间的钥匙和门钥匙。";
            pq = 1;
            men = 1;
            slp;
            slp;
            cls;
            fl1();
        }
    } else {
        co(MAGENTA);
        cout << "你还没有乔治的钥匙呢";
        co(WHITE);
        slp;
        slp;
        cls;
        fl1();
    }
}

void zhubama() {
    cout << "小心猪爸妈!\n你要干什么?\n";
    co(RED);
    cout << "A.开一点门缝瞅一眼\n";
    co(GREEN);
    cout << "B.打开门\n";
    co(WHITE);
    char c;
    cin >> c;
    cls;
    if (c == 'A') {
        cout << "你发现猪爸妈在休息\n你要干什么?\n";
        co(RED);
        cout << "A.关门离开\n";
        co(GREEN);
        cout << "B.打开门\n";
        co(WHITE);
        cin >> c;
        cls;
        if (c == 'A')
            fl1();
        if (c == 'B') {
            cout << "猪爸妈想要把你干掉,可你的灵活走位甩掉了猪爸妈,还拿到了";
            co(LIGHT_CYAN);
            cout << "乔治卧室的钥匙";
            co(WHITE);
            qz = 1;
            slp;
            cls;
            fl2();
        }
    }
    if (c == 'B') {
        vector<int> n = suiji(10,2);
        int c = n[0];
        if (c <= 7){
            cout << "猪爸妈在休息\n你冲了进去,结果猪爸妈把你";
            co(RED);
            cout << "杀了";
            co(WHITE);
            slp;
            cls;
            exit(0);
        }else{
            cout << "猪爸妈想要把你干掉,可你的灵活走位甩掉了猪爸妈,还拿到了";
            co(LIGHT_CYAN);
            cout << "乔治卧室的钥匙";
            co(WHITE);
            qz = 1;
            slp;
            cls;
            fl2();
        }
    }
}

void fl2() {
    cout << "2楼\n";
    cout << "你要去哪里?\n";
    co(RED);
    cout << "A.猪爸妈卧室\n";
    co(YELLOW);
    cout << "B.厨房(未更新)\n";
    co(GREEN);
    cout << "C.餐厅(未更新)\n";
    co(BLUE);
    cout << "D.一楼\n";
    co(MAGENTA);
    cout << "E.存档室\n";
    co(WHITE);
    cout << "请输入大写字母\n";
    char c;
    cin >> c;
    cls;
    if (c == 'A')
        zhubama();
    if (c == 'B')
        chufang();
    if (c == 'C')
        canting();
    if (c == 'D')
        fl1();
    if (c == 'E')
        cundang();
}

//未更新,可自行更新
void chufang() {
}

void canting() {
}

void jieshu() {
    cout <<"你获得的成就:\n";
    vector<int> v;
    for (int i = 1;i <= 5;i++) if (a[i][1] == "已达成") v.push_back(i);
    for (auto & i : v) cout << a[i][1] << endl;
    cout <<"游戏结束!";
    exit(0);
}

void chumen() {
    if (men) {
        cout << "你出了门。\n";
        slp;
        cout << "你看到";
        co(RED);
        cout << "左边是菜市场,";
        co(GREEN);
        cout << "右面是仓库。\n";
        co(WHITE);
        char c;
        cout << "你要去哪里?\n";
        co(RED);
        cout << "A.左边\n";
        co(GREEN);
        cout << "B.右边\n";
        co(WHITE);
        cin >> c;
        cls;
        if (c == 'A')
            caishichang();
        if (c == 'B')
            cangku();
    }
}

void chengjiu() {
}

void cangku() {
}

void caishichang() {
    cout <<"你到了人来人往的菜市场。\n你走进一家商店,发现有";
    co(RED);
    cout <<"诡异的兔小姐和土豆先生";
    co(WHITE);
    cout <<"。\n";
    cout <<"你要干什么?\n";
    co(RED);
    cout <<"A.回佩奇家\n";
    co(GREEN);
    cout <<"B.干掉土豆先生与兔小姐";
    char c;
    cin >> c;
    if (c == 'A') fl1();
    if (c == 'B') ;
}
void cundang() {
    cout << "你要干什么?\n";
    co(RED);
    cout << "A.存档\n";
    co(GREEN);
    cout << "B.读档\n";
    co(WHITE);
    cout << "请输入大写字母\n";
    char c;
    cin >> c;
    if (c == 'A') {
        ofstream fout;
        fout.open("佩奇存档.txt");
        fout << pq << ' ' << qz;
        fout << endl;
        for (int i = 1;i <= 5;i++) fout << a[i][1] << endl;
        co(LIGHT_CYAN);
        cout << "存档成功!\n";
        co(WHITE);
        slp;
        cls;
        fl2();
    } else {
        ifstream fin;
        fin.open("佩奇存档.txt");
        fin >> pq >> qz;
        fin >> a[1][1] >> a[2][1] >> a[3][1] >> a[4][1] >> a[5][1];
        co(LIGHT_CYAN);
        cout << "读档成功!\n";
        co(WHITE);
        slp;
        cls;
        fl2();
    }
}