恐怖佩奇
众所周知,恐怖佩奇是以视频为载体的。
但是如果我用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();
}
}