深夜便利店 规则怪谈小游戏
2026-08-16 14:45:48
发布于:广东
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
// 全局状态变量
int money = 0;
int clock_hour = 23;
int trust_level = 0;
int rule_known = 0;
int strange_count = 0;
int key_item = 0;
// 【修正1】函数定义放在 main 之外,平行结构
void wait() {
Sleep(100);
getchar();
}
void cls() {
Sleep(50);
system("cls");
}
void show_status() {
printf("【状态】时间:%02d:00 | 零钱:%d元 | 异常事件:%d/3\n", clock_hour, money, strange_count);
if(rule_known > 0) printf("已掌握规则:%d条\n", rule_known);
if(key_item > 0) {
if(key_item == 1) printf("持有:员工手册\n");
else if(key_item == 2) printf("持有:监控录像带\n");
else printf("持有:店长钥匙\n");
}
printf("--------------------------------\n");
}
int main() {
srand(time(NULL));
char choice;
start_game:
// 初始化状态
money = 50;
clock_hour = 23;
trust_level = 0;
rule_known = 0;
strange_count = 0;
key_item = 0;
cls();
printf("深夜便利店规则怪谈\n");
printf("===================\n");
wait();
cls();
printf("你是一名大学生,为了赚取生活费,在学校的“24小时便利店”找到了一份夜班工作。\n");
wait();
printf("今天是你的第一个夜班,晚上11点准时到岗。\n");
wait();
printf("交班的老员工匆匆离开前,塞给你一张皱巴巴的纸条:\n");
wait();
printf("\"记住,无论发生什么,严格遵守规则。\"\n");
wait();
scene1:
cls();
show_status();
printf("你打开纸条,上面写着几条规则:\n\n");
printf("【便利店夜班规则(部分)】\n");
printf("1. 本店营业时间为全天24小时,但凌晨1:00-3:00不接待任何顾客。\n");
printf("2. 如果听到冷藏柜第三层传来婴儿哭声,请立即关闭冷藏柜电源,10分钟后再打开。\n");
printf("3. 收银台抽屉里永远要有至少50元零钱,如果发现不足,从自己钱包里补上。\n");
printf("4. 凌晨2:00整,必须检查监控屏幕,如果看到穿红色雨衣的人站在店外,不要对视。\n");
printf("5. 如果有顾客要求购买“不存在”的商品(如蓝色可乐、黑色牛奶),请礼貌拒绝。\n");
printf("\n纸条的最后一行被水渍模糊了,只能看到“千万不要……”几个字。\n");
wait();
rule_known = 5;
printf("\n你刚把纸条收好,店门的风铃响了。\n");
printf("一位穿着灰色风衣的中年男子走了进来,径直走向饮料区。\n");
wait();
scene2:
cls();
show_status();
printf("灰衣男子在货架前站了很久,然后拿着两罐啤酒走向收银台。\n");
printf("他盯着你的眼睛说:“年轻人,新来的?这里的夜班……不太好上吧?”\n\n");
printf("1-礼貌微笑:“还好,我会努力适应的。”\n");
printf("2-警惕地回答:“您需要结账吗?”\n");
printf("3-试探地问:“前辈有什么建议吗?”\n");
s2:
choice = getchar();
getchar();
if(choice == '1') {
printf("\n你选择礼貌微笑。\n");
wait();
printf("男子点点头,付了钱离开。临走前他回头说:“记住,规则不是全部。”\n");
trust_level += 1;
} else if(choice == '2') {
printf("\n你选择警惕应对。\n");
wait();
printf("男子愣了一下,迅速结账离开。\n");
} else if(choice == '3') {
printf("\n你选择试探询问。\n");
wait();
printf("男子凑近一些,压低声音:“如果看到穿红色雨衣的人……不要让他看到你在看他。”\n");
rule_known += 1;
trust_level += 2;
} else {
goto s2;
}
wait();
clock_hour = 0;
scene3:
cls();
show_status();
printf("时间到了凌晨0:00。店里暂时没有客人。\n");
printf("你决定做点什么打发时间:\n\n");
printf("1-整理货架\n");
printf("2-查看员工休息室\n");
printf("3-清点收银台零钱\n");
s3:
choice = getchar();
getchar();
if(choice == '1') {
printf("\n你开始整理货架。在整理零食区时,发现一包薯片后面藏着一本小册子。\n");
wait();
printf("封面上写着《便利店异常事件处理手册(内部版)》。\n");
key_item = 1;
rule_known += 3;
printf("你快速翻阅,记下了几条新规则。\n");
} else if(choice == '2') {
printf("\n你推开员工休息室的门。里面很简陋,只有一张桌子和一把椅子。\n");
wait();
printf("桌上放着一台老式录像机,旁边有一盒标着“7月15日监控”的录像带。\n");
printf("1-播放录像带\n");
printf("2-不理睬,回到前台\n");
char sub_choice = getchar();
getchar();
if(sub_choice == '1') {
printf("\n你播放了录像带。画面显示凌晨2:30,一个穿红色雨衣的人影站在店外,一动不动。\n");
wait();
printf("3分钟后,人影突然转向摄像头,但你根本看不清脸——只有一片模糊的红色。\n");
strange_count += 1;
key_item = 2;
} else {
printf("\n你决定不碰奇怪的东西,回到了前台。\n");
}
} else if(choice == '3') {
printf("\n你清点零钱,发现只有42元,不足50元。\n");
wait();
printf("你想起了规则第三条。\n");
printf("1-从自己钱包里补8元\n");
printf("2-假装没发现\n");
char sub_choice = getchar();
getchar();
if(sub_choice == '1') {
printf("\n你从钱包拿出8元放进抽屉。\n");
money -= 8;
printf("补完后,你听到抽屉里传来轻微的“咔哒”声。\n");
wait();
printf("打开一看,里面多了一把黄铜钥匙,上面贴着“店长专用”。\n");
key_item = 3;
} else {
printf("\n你决定无视这个规则。\n");
strange_count += 1;
}
} else {
goto s3;
}
wait();
clock_hour = 1;
scene4:
cls();
show_status();
printf("凌晨1:00整。\n");
printf("店门突然被推开,一个浑身湿透的女人冲了进来。\n");
printf("她颤抖着说:“外面……外面雨好大,能借把伞吗?”\n");
wait();
printf("你想起规则第一条:凌晨1:00-3:00不接待任何顾客。\n\n");
printf("1-礼貌拒绝:“抱歉,现在是非营业时间。”\n");
printf("2-看她可怜:“稍等,我去后面找找。”\n");
printf("3-直接指向门外:“请离开。”\n");
s4:
choice = getchar();
getchar();
if(choice == '1') {
printf("\n你按规则拒绝了。女人盯着你看了一会儿,突然笑了:“你比上一个聪明。”\n");
wait();
printf("她转身离开,但门外根本没有下雨。\n");
} else if(choice == '2') {
printf("\n你转身去仓库找伞。\n");
wait();
printf("找了半天没找到,回来时发现女人站在收银台后面,正在翻看那本规则纸条。\n");
printf("她抬起头,眼睛是全黑的:“你在找这个?”她手里拿着一把红色的伞。\n");
strange_count += 1;
wait();
printf("你吓得后退,女人大笑着消失了。\n");
} else if(choice == '3') {
printf("\n你强硬地要求她离开。女人脸色一变,扑向收银台!\n");
wait();
printf("你本能地抓起旁边的扫码枪挡在身前——\n");
printf("女人碰到扫码枪的瞬间发出尖叫,化作一团黑烟消散了。\n");
printf("扫码枪上浮现出一行小字:“规则0:员工有权驱逐异常个体。”\n");
rule_known += 1;
} else {
goto s4;
}
wait();
// 随机事件:冷藏柜婴儿哭声
if(rand() % 2 == 0) {
cls();
show_status();
printf("突然,冷藏柜第三层传来清晰的婴儿哭声!\n");
printf("你想起了规则第二条。\n\n");
printf("1-立即关闭冷藏柜电源\n");
printf("2-先去看看怎么回事\n");
char cry_choice;
do {
cry_choice = getchar();
getchar();
if(cry_choice == '1') {
printf("\n你冲到墙边,拉下了冷藏柜的电闸。\n");
wait();
printf("哭声戛然而止。10分钟后,你重新推上电闸,一切正常。\n");
} else if(cry_choice == '2') {
printf("\n你走向冷藏柜,打开第三层的门——\n");
wait();
printf("里面什么都没有,但哭声更响了,仿佛就在你耳边。\n");
printf("你感到一阵眩晕,耳边响起低语:“为什么不遵守规则……”\n");
strange_count += 1;
wait();
printf("你踉跄着关上门,拉下电闸。过了很久才恢复过来。\n");
} else {
continue;
}
break;
} while(1);
wait();
}
clock_hour = 2;
scene5:
cls();
show_status();
printf("凌晨2:00整。\n");
printf("你想起规则第四条,看向墙上的监控屏幕。\n");
wait();
if(key_item == 2) {
printf("屏幕上,一个穿红色雨衣的人影正站在店门外,和录像带里一模一样。\n");
} else {
printf("屏幕上,店外空无一人。\n");
}
printf("\n你突然注意到,监控画面的角落里,收银台后面——站着一个人!\n");
printf("但那不是你,而是一个穿着便利店制服、背对着摄像头的背影。\n");
wait();
printf("你猛地回头,身后空无一人。\n");
printf("再看向屏幕,那个背影还在。\n\n");
printf("1-对着监控问:“你是谁?”\n");
printf("2-假装没看见,继续工作\n");
printf("3-检查员工手册(如果有)\n");
s5:
choice = getchar();
getchar();
if(choice == '1') {
printf("\n你对着监控屏幕问道。\n");
wait();
printf("屏幕里的背影缓缓转过身来——没有脸,只有一片空白。\n");
printf("下一秒,你感到一只手搭在了你的肩膀上。\n");
strange_count += 2;
wait();
printf("你僵硬地回头,什么都没有。但监控屏幕上,那个无脸人正站在你身后。\n");
} else if(choice == '2') {
printf("\n你强作镇定,继续整理收银台。\n");
wait();
printf("几分钟后,屏幕里的背影消失了。\n");
} else if(choice == '3') {
if(key_item == 1) {
printf("\n你快速翻开员工手册,找到相关条目:\n");
wait();
printf("“监控异常:当屏幕上出现非本人影像时,立即闭眼默数10秒,期间无论听到什么不要睁眼。”\n");
printf("你照做了。数到10后睁眼,屏幕恢复正常。\n");
rule_known += 1;
} else {
printf("\n你没有员工手册。\n");
goto s5;
}
} else {
goto s5;
}
wait();
// 凌晨2:30关键事件
cls();
show_status();
printf("凌晨2:30。\n");
printf("风铃又响了。一个穿着红色雨衣的人推门而入。\n");
printf("他/她全身笼罩在雨衣中,看不清面容,径直走向饮料区。\n");
wait();
printf("一分钟后,他拿着一瓶“蓝色可乐”走向收银台。\n");
printf("规则第五条:拒绝“不存在”的商品。\n\n");
printf("1-礼貌拒绝:“抱歉,本店没有这种商品。”\n");
printf("2-尝试扫码,看看价格\n");
printf("3-询问:“您从哪里拿的?”\n");
s6:
choice = getchar();
getchar();
if(choice == '1') {
printf("\n你按规则拒绝。红色雨衣沉默了几秒,转身离开。\n");
wait();
printf("走到门口时,他回头说:“你合格了。”然后消失在夜色中。\n");
trust_level += 3;
} else if(choice == '2') {
printf("\n你拿起蓝色可乐扫码——嘀!价格显示:-1元。\n");
wait();
printf("收银机突然疯狂打印小票,纸上全是乱码。\n");
printf("红色雨衣伸出手:“找钱。”\n");
printf("你抬头,看到雨帽下是一片深邃的黑暗。\n");
strange_count += 2;
} else if(choice == '3') {
printf("\n你询问商品来源。红色雨衣缓缓抬头,雨帽滑落——\n");
wait();
if(trust_level >= 3) {
printf("下面是一张温和的中年人脸庞。\n");
printf("“我是店长。”他微笑,“看来老员工没选错人。”\n");
key_item = 3;
} else {
printf("雨帽下什么都没有,只有一片旋转的星空。\n");
printf("你感到意识正在被吸走……\n");
strange_count = 3;
}
} else {
goto s6;
}
wait();
clock_hour = 4;
scene6:
cls();
show_status();
printf("凌晨4:00,天快亮了。\n");
printf("你熬过了最危险的时段,还有两小时就下班了。\n");
wait();
// 根据累计条件判断结局
if(strange_count >= 3) {
goto bad_end1;
}
if(key_item == 3 && trust_level >= 4) {
goto true_end;
}
if(rule_known >= 8 && strange_count == 0) {
goto good_end1;
}
if(trust_level >= 5) {
goto good_end2;
}
if(money <= 30) {
goto bad_end2;
}
// 默认结局
goto normal_end;
// ========== 结局分支 ==========
bad_end1:
cls();
printf("凌晨4:30,你突然感到极度的困倦。\n");
wait();
printf("你趴在收银台上睡着了。\n");
wait();
printf("梦里,你看到无数个自己站在便利店外,透过玻璃看着里面的你。\n");
wait();
printf("他们都在挥手,嘴型说着:“快出来……”\n");
wait();
printf("但你再也醒不来了。\n");
wait();
printf("\n════════════════════════════\n");
printf("End01:陷入循环\n");
printf("你成为了便利店的一部分,永远困在这null
全部评论 1
- 置顶
// ========== 结局分支 ==========
bad_end1:
cls();
printf("凌晨4:30,你突然感到极度的困倦。\n");
wait();
printf("你趴在收银台上睡着了。\n");
wait();
printf("梦里,你看到无数个自己站在便利店外,透过玻璃看着里面的你。\n");
wait();
printf("他们都在挥手,嘴型说着:“快出来……”\n");
wait();
printf("但你再也醒不来了。\n");
wait();
printf("\n════════════════════════════\n");
printf("End01:陷入循环\n");
printf("你成为了便利店的一部分,永远困在这个夜晚。\n");
printf("════════════════════════════\n");
goto restart;bad_end2:
cls();
printf("早上6:00,接班的员工来了。\n");
wait();
printf("他清点收银台时皱起眉头:“零钱少了20元,按规定从你工资里扣。”\n");
wait();
printf("你试图解释昨晚的异常,但对方根本不信。\n");
wait();
printf("店长查看了监控,发现你多次违反规则。\n");
wait();
printf("你被解雇了,而且拿不到任何工资。\n");
wait();
printf("走出便利店时,你回头看了一眼——\n");
printf("玻璃窗上,一个穿红色雨衣的影子正向你挥手告别。\n");
wait();
printf("\n════════════════════════════\n");
printf("End02:失去一切\n");
printf("你失去了工作、金钱,还带走了不该带走的注视。\n");
printf("════════════════════════════\n");
goto restart;normal_end:
cls();
printf("早上6:00,天亮了。接班的员工准时到来。\n");
wait();
printf("你交班后疲惫地走出便利店,阳光有些刺眼。\n");
wait();
printf("回头望去,便利店在晨光中显得普通又安静。\n");
wait();
printf("昨晚的一切仿佛只是个漫长的噩梦。\n");
wait();
printf("但你口袋里的员工手册提醒你,那都是真的。\n");
wait();
printf("你决定再也不接夜班了。\n");
wait();
printf("\n════════════════════════════\n");
printf("End03:平安夜班\n");
printf("你熬过了第一夜,选择回归正常生活。\n");
printf("════════════════════════════\n");
goto restart;good_end1:
cls();
printf("早上5:50,店长突然出现在店里。\n");
wait();
printf("他检查了收银台、货架和监控记录,点了点头。\n");
wait();
printf("“你严格遵守了所有规则,甚至发现了隐藏规则。”店长说。\n");
wait();
printf("“从今天起,你就是正式夜班员工了,时薪加倍。”\n");
wait();
printf("他递给你一份新合同,上面写着《异常事件处理专员聘用协议》。\n");
wait();
printf("你签下了名字,知道自己的生活从此不同了。\n");
wait();
printf("\n════════════════════════════\n");
printf("End04:晋升专员\n");
printf("你成为了规则守护者,获得了高薪但危险的工作。\n");
printf("════════════════════════════\n");5天前 来自 广东
1goto restart;
good_end2:
cls();
printf("凌晨5:30,灰衣男子再次出现。\n");
wait();
printf("“你通过了考验。”他摘下帽子,露出一张熟悉的脸——是前任夜班员工。\n");
wait();
printf("“我因为好奇心看了不该看的东西,被困在这里三个月。”\n");
wait();
printf("“现在你救了我,我可以离开了。这个便利店……就交给你了。”\n");
wait();
printf("他化作光点消失,你感到自己对这家店有了某种“连接”。\n");
wait();
printf("你可以选择开店时间,甚至微调某些规则。\n");
wait();
printf("\n════════════════════════════\n");
printf("End05:继承店铺\n");
printf("你成为了便利店的新主人,掌握了部分超常规则。\n");
printf("════════════════════════════\n");
goto restart;true_end:
cls();
printf("凌晨4:45,红色雨衣去而复返。\n");
wait();
printf("这次他手里拿着店长钥匙的复制品。\n");
wait();
printf("“你拿到了真钥匙,看到了录像带,还遵守了核心规则。”\n");
wait();
printf("“你知道这家店真正的作用吗?”\n");
wait();
printf("他带你走到便利店最里面的仓库,用两把钥匙同时打开一扇暗门。\n");
wait();
printf("门后是一个巨大的控制室,屏幕上显示着城市各个角落的监控。\n");
wait();
printf("“我们不是便利店,我们是‘现实稳定锚点’。”\n");
wait();
printf("“每晚的规则,是在过滤试图渗入现实的异常。”\n");
wait();
printf("“你愿意加入我们,成为守护者吗?”\n");
wait();
printf("你握住了他伸出的手。\n");
wait();
printf("\n════════════════════════════\n");
printf("End06:真相与使命\n");
printf("你知晓了世界的另一面,并选择为之而战。\n");
printf("════════════════════════════\n");restart:
printf("\n\n按R键重新开始,其他键退出...\n");
choice = getchar();
if(choice == 'r' || choice == 'R') {
goto start_game;
}return 0;} // 【修正2】确保 main 函数在此处正确闭合
5天前 来自 广东
1由于代码太长,所以放在评论区
5天前 来自 广东
1




















有帮助,赞一个