-
个人简介
教你如何水24道黑题
1.抄题解,1月不过10次2.看题解,仅限超水二分+数学
3.听教练讲
抄教练代码4.套数据
5.自己写
几乎不可能
"AC=Answer Coarse=粗劣的答案" "WA=Wonderful Answer=好答案" "TLE=Time Limit Enough=时间充裕" "MLE=Memory Limit Enough=内存充裕" "CE=Compile Easily=轻松通过编译" "RE=Run Excellently=完美运行" "UKE=Unbelievablly Keep Enough Score=难以置信地保持足够的分数" "AU=All Unaccepted=全都不正确"次踩爆这个蒟蒻.
#include <iostream> #include <windows.h> #include <string> #include <cstdlib> #include <ctime> using namespace std; // 添加随机事件函数 void randomHorrorEvent(int &sanity) { int event = rand() % 5; switch(event) { case 0: cout << "你突然听到耳边有人轻声呢喃你的名字...\n"; sanity -= 8; break; case 1: cout << "余光瞥见一个苍白的面孔从窗外一闪而过...\n"; sanity -= 5; break; case 2: cout << "所有的门突然同时发出吱呀声...\n"; sanity -= 7; break; case 3: cout << "你的影子突然自己动了起来...\n"; sanity -= 10; break; case 4: cout << "空气中突然弥漫着腐臭的气味...\n"; sanity -= 5; break; } cout << "理智-" << (event+5) << endl; Sleep(2000); } int main() { srand(time(0)); int sanity = 50; // 理智值 int knowledge = 0; // 知识收集度 int daysSurvived = 0; // 生存天数 int hunger = 50; // 饥饿值 string choice[30]; system("cls"); cout << "=======================\n"; cout << " 校园怪谈-生存版\n"; cout << "=======================\n"; cout << "开始游戏吗?\n"; cout << "A.开始游戏 B.退出\n"; cin >> choice[0]; if(choice[0] == "A" || choice[0] == "a") { cout << "加载中......\n"; Sleep(2000); system("cls"); cout << "提示:这所学校已被异界侵蚀,你必须生存足够长时间才能找到真相\n"; cout << "提示:午夜12点后学校会变成地狱,但有时你必须留下\n"; cout << "提示:注意你的饥饿值和理智值,过低会导致死亡\n"; cout << "A.我明白了\n"; cin >> choice[1]; if(choice[1] == "A" || choice[1] == "a") { // 游戏主循环 while(sanity > 0 && hunger > 0 && daysSurvived < 30) { system("cls"); daysSurvived++; hunger -= 10; // 每天减少饥饿值 // 随机事件触发 if(rand() % 100 < 40) { randomHorrorEvent(sanity); } cout << "第 " << daysSurvived << " 天\n"; cout << "时间:下午4:30\n"; cout << "当前状态:\n"; cout << "理智值: " << sanity << "/100\n"; cout << "饥饿值: " << hunger << "/100\n"; cout << "知识收集: " << knowledge << "/100\n\n"; // 根据天数推进剧情 if(daysSurvived == 1) { cout << "放学后,你发现教室里只剩下你一个人\n"; cout << "课桌里有一本渗血的日记,封面在微微颤动\n"; cout << "A.阅读日记 B.无视它回家\n"; cin >> choice[2]; if(choice[2] == "A" || choice[2] == "a") { cout << "日记中记载着三年前一个学生的献祭仪式\n"; cout << "最后一页写着'不要相信镜子里的自己'\n"; cout << "知识+10 理智-10\n"; knowledge += 10; sanity -= 10; Sleep(2000); cout << "\n你听到走廊传来湿漉漉的脚步声,像是沾满了血\n"; cout << "A.躲起来 B.出去看看\n"; cin >> choice[3]; if(choice[3] == "A" || choice[3] == "a") { cout << "你躲在了讲台下,看到一个没有皮肤的人形走过\n"; cout << "它突然停下,脖子180度扭转看向你的方向...\n"; cout << "理智-15\n"; sanity -= 15; Sleep(2000); } else { cout << "走廊空无一人,但墙上渗出鲜血形成'快逃'字样\n"; cout << "理智-25\n"; sanity -= 25; Sleep(2000); } } } else if(daysSurvived == 2) { cout << "午休时间,你听说图书馆有关于学校历史的禁书\n"; cout << "图书管理员的眼睛全黑,嘴角挂着诡异的微笑\n"; cout << "A.去图书馆调查 B.放弃调查\n"; cin >> choice[4]; if(choice[4] == "A" || choice[4] == "a") { cout << "禁书区的书皮是用人皮制作的,还在微微发热\n"; cout << "你找到了被撕毁的记录,上面的血迹还未干涸\n"; cout << "知识+20 理智-10\n"; knowledge += 20; sanity -= 10; Sleep(2000); cout << "\n管理员突然出现在你身后,他的影子有六只手\n"; cout << "A.撒谎说走错了 B.坦白在调查\n"; cin >> choice[5]; if(choice[5] == "A" || choice[5] == "a") { cout << "管理员相信了你,但你发现他的牙齿变得尖锐\n"; cout << "理智-10\n"; sanity -= 10; } else { cout << "管理员的脸皮突然脱落,露出血肉模糊的真容\n"; cout << "知识-10\n"; knowledge = max(0, knowledge-10); sanity -= 15; } } } else if(daysSurvived == 3) { cout << "食堂阿姨给你的饭菜里有可疑的黑色毛发\n"; cout << "A.勉强吃一些 B.偷偷倒掉\n"; cin >> choice[6]; if(choice[6] == "A" || choice[6] == "a") { cout << "食物尝起来像腐肉,但你的饥饿感减轻了\n"; cout << "饥饿+30 理智-15\n"; hunger += 30; sanity -= 15; } else { cout << "你看到倒掉的食物在地上蠕动,像活物一样\n"; cout << "理智-10 饥饿-10\n"; sanity -= 10; hunger -= 10; } cout << "\n晚上11:50,你决定:\n"; cout << "A.留在学校调查 B.回家休息\n"; cin >> choice[7]; if(choice[7] == "A" || choice[7] == "a") { cout << "午夜钟声响起,整个建筑开始扭曲变形\n"; cout << "墙壁渗出鲜血,空气中充满痛苦的呻吟声\n"; cout << "当前知识: " << knowledge << "/100\n"; if(knowledge >= 30) { cout << "\n你注意到实验室有微弱的绿光\n"; cout << "A.前往实验室 B.去教室调查\n"; cin >> choice[8]; if(choice[8] == "A" || choice[8] == "a") { cout << "实验室里,你发现了用内脏绘制的仪式阵\n"; cout << "中央的烧杯中,一颗眼球正盯着你转动\n"; cout << "知识+30 理智-20\n"; knowledge += 30; sanity -= 20; cout << "\n黑影从四面八方聚集,形成一张张痛苦的面孔\n"; cout << "A.使用学到的仪式对抗 B.逃跑\n"; cin >> choice[9]; if(choice[9] == "A" || choice[9] == "a") { if(knowledge >= 60) { cout << "仪式成功!你暂时封印了学校的异变\n"; cout << "但你知道这只是暂时的...\n"; cout << "理智+30 饥饿-20\n"; sanity = min(100, sanity+30); hunger -= 20; Sleep(3000); } else { cout << "知识不足,仪式反噬!\n"; cout << "你的手掌开始腐烂\n"; cout << "理智-30\n"; sanity -= 30; } } else { cout << "逃跑途中你被黑影缠绕,它们在你耳边尖叫\n"; cout << "理智-25\n"; sanity -= 25; } } else { cout << "教室里,所有桌椅都在自行移动\n"; cout << "黑板上浮现用血写成的你的名字\n"; cout << "理智-25\n"; sanity -= 25; } } } } // 第4-7天内容 else if(daysSurvived >= 4 && daysSurvived <= 7) { cout << "校园里的异常现象越来越明显\n"; cout << "同学中有几个人的行为变得怪异...\n"; cout << "A.调查同学 B.专注于生存 C.尝试逃离学校\n"; cin >> choice[10]; if(choice[10] == "A" || choice[10] == "a") { cout << "你发现三名同学在午夜进行奇怪的仪式\n"; cout << "他们的皮肤下有什么东西在蠕动...\n"; cout << "知识+20 理智-25\n"; knowledge += 20; sanity -= 25; } else if(choice[10] == "B" || choice[10] == "b") { cout << "你专注于收集食物和水源\n"; cout << "饥饿+20 理智+5\n"; hunger += 20; sanity = min(100, sanity+5); } else { cout << "校门被无形的力量封锁\n"; cout << "保安亭里坐着没有脸的保安\n"; cout << "理智-15\n"; sanity -= 15; } } // 第8-14天内容 else if(daysSurvived >= 8 && daysSurvived <= 14) { cout << "学校已经完全异变,白天也变得昏暗\n"; cout << "你必须做出选择:\n"; cout << "A.寻找校长室 B.探索地下室 C.尝试净化仪式\n"; cin >> choice[11]; if(choice[11] == "A" || choice[11] == "a") { cout << "校长室里,你发现校长已经变成一具干尸\n"; cout << "但他的日记揭示了仪式的真相\n"; cout << "知识+40 理智-30\n"; knowledge += 40; sanity -= 30; } else if(choice[11] == "B" || choice[11] == "b") { cout << "地下室堆满了被茧包裹的人形\n"; cout << "其中一个茧开始破裂...\n"; cout << "A.靠近观察 B.立即离开\n"; cin >> choice[12]; if(choice[12] == "A" || choice[12] == "a") { cout << "茧中是你自己的复制体,它睁开了眼睛...\n"; cout << "理智-40\n"; sanity -= 40; } else { cout << "你逃离时听到身后传来黏腻的爬行声\n"; cout << "理智-20\n"; sanity -= 20; } } else { if(knowledge >= 70) { cout << "仪式部分成功,学校暂时恢复正常\n"; cout << "你获得了喘息的机会\n"; cout << "理智+40 饥饿+30\n"; sanity = min(100, sanity+40); hunger = min(100, hunger+30); } else { cout << "仪式失败,引发了更强烈的异变\n"; cout << "理智-30\n"; sanity -= 30; } } } // 15天后内容 else if(daysSurvived >= 15) { if(knowledge >= 90) { cout << "你终于掌握了完整的净化仪式\n"; cout << "现在是终结这一切的时候了...\n"; cout << "A.在礼堂举行最终仪式 B.继续生存等待救援\n"; cin >> choice[13]; if(choice[13] == "A" || choice[13] == "a") { cout << "礼堂中,你与异界实体展开最终对决\n"; if(sanity >= 60) { cout << "仪式成功!你关闭了异界通道\n"; cout << "学校开始恢复正常,但记忆将永远伴随你\n"; Sleep(3000); system("cls"); cout << "===============\n"; cout << " 真结局\n"; cout << "你拯救了所有人\n"; cout << "生存天数: " << daysSurvived << endl; cout << "===============\n"; break; } else { cout << "你的理智不足,被仪式吞噬\n"; sanity = 0; } } } // 随机遭遇 int encounter = rand() % 3; switch(encounter) { case 0: cout << "你遇到了幸存的同学,分享了一些食物\n"; hunger += 15; break; case 1: cout << "走廊突然无限延伸,你跑了很久才逃脱\n"; sanity -= 15; hunger -= 10; break; case 2: cout << "你发现了一间未被污染的储藏室\n"; hunger += 25; sanity += 10; break; } } // 状态检查 if(sanity <= 0) { system("cls"); cout << "===============\n"; cout << " 坏结局\n"; cout << "你失去了理智\n"; cout << "生存天数: " << daysSurvived << endl; cout << "===============\n"; break; } if(hunger <= 0) { system("cls"); cout << "===============\n"; cout << " 坏结局\n"; cout << "你饿死了\n"; cout << "生存天数: " << daysSurvived << endl; cout << "===============\n"; break; } if(daysSurvived >= 30) { system("cls"); cout << "===============\n"; cout << " 生存结局\n"; cout << "你成功活到了救援到来\n"; cout << "但学校依然被诅咒笼罩...\n"; cout << "===============\n"; break; } // 每日结束 cout << "\n天色已晚,你决定:\n"; cout << "A.寻找安全处所休息 B.继续探索\n"; cin >> choice[14]; if(choice[14] == "A" || choice[14] == "a") { cout << "你找到一间相对安全的教室休息\n"; cout << "理智+10 饥饿-15\n"; sanity = min(100, sanity+10); hunger -= 15; } else { cout << "夜晚的探索让你精疲力尽\n"; cout << "知识+5 理智-15 饥饿-20\n"; knowledge += 5; sanity -= 15; hunger -= 20; } Sleep(2000); } } } cout << "\n感谢游玩!\n"; system("pause"); return 0; } Kick Ass - Destroy the web (把中间的按钮拖到上面书签栏,然后点一下,(↑,←,→,空格)) -
通过的题目
-
最近活动
-
最近编写的题解
题目标签
- 循环
- 8
- 数组
- 5
- 模拟
- 4
- 奇偶数
- 3
- 递推
- 2
- 递归
- 2
- 字符串
- 1
- 搜索
- 1
- 枚举
- 1
- 二分
- 1
- 二维数组
- 1
- if else
- 1
- 一维数组
- 1