陆辞盯着屏幕上的报错信息。
同一行代码,同一个错误,十六个小时。空调出风口对着后脖颈吹,冷意顺着脊椎往下淌。隔壁工位的咖啡杯不知放了几天,氧化的奶液散发酸腐味,和键盘缝隙里的灰尘味搅在一起。凌晨三点,整层楼只剩他和服务器散热风扇的低频嗡鸣。
胸口忽然被什么东西攥了一把。
不是第一次。上个月的体检报告他扫了一眼就关掉了——还有三个Bug要修,心电图不急。
第二下攥得更紧。这次没松开。
视野从中央开始发暗,像显示器亮度逐帧降到零。最后一帧画面是屏幕上那行他修了十六小时的报错代码。
然后黑屏。
——
再次开机时,他站着。
脚下是灰白色的瓷砖地面。头顶的日光灯管闪烁不定,发出电流过载的嗞嗞声。空气里弥漫着隔夜咖啡的酸味和空调过滤网长期不换的霉味——和他猝死前闻到的一模一样。
一间陌生的办公室。隔断、工位、饮水机,标准的互联网公司配置。但所有电脑屏幕是黑的,所有手机是死的。大约三十个人散布在各处,有人瘫坐在地上哭,有人疯狂按手机电源键,有人用肩膀撞向落地窗——窗外是一片灰白色的虚无,像没加载完的贴图。
他低头看了一眼自己的手。有一瞬间的陌生感。
但他没时间追究。因为在他正前方两米处,五行发光的文字正悬浮在半空中。
不是代码。是规则。
【规则一】工作时间为9:00-18:00。工作时间内,所有人员必须留在各自工位上,不得离开。
【规则二】每小时整点,请前往12楼茶水间领取饮用水。未按时领取者视为自愿放弃饮水权利。
【规则三】大楼内所有楼层间移动仅允许通过电梯进行。严禁使用楼梯。
【规则四】9:00-18:00期间,电梯仅限佩戴红色工牌的管理人员使用。其他人员严禁搭乘。
【规则五】下班后(18:00起),请从一楼正门离开大楼。正门是唯一出口。
陆辞把五条规则读了两遍。
不是在理解内容。是在审查逻辑。
十年写代码养出来的直觉在零点几秒内完成了第一轮扫描,结论自动弹出来,像IDE底部的红色波浪线一样刺眼——规则二要求去12楼领水。规则三禁止走楼梯。规则四禁止普通人坐电梯。
那不在12楼的人怎么去12楼?
三条规则把所有路径锁死,第四条规则强制要求你走过去。经典的逻辑死锁。
这代码谁写的。他低声说,规则二和规则四逻辑冲突。
话音刚落,眼前的东西变了。
不是文字内容变了——是他看到的方式变了。五条规则像被什么东西解压缩了一层:每行文字后面浮现出半透明的代码结构,色彩分明。正常运行的逻辑是绿色代码流,稳定、自洽。但规则二和规则四之间出现了一条刺目的红色连线,旁边弹出一行注释:
//CONFLICT:mandatory_action(go_to_12F)requiresprohibited_transport(elevator)
不只是这两条。规则一、规则三、规则四共享同一个移动限制执行模块,三条规则的执行线程和规则二的强制移动指令互相否定,四条规则同时标红。整个模块卡在冲突态。
陆辞眨了一下眼。那些代码结构消失了,规则恢复成普通的发光文字。太阳穴跳了两下——像盯了十六小时屏幕之后的那种胀痛。
他暂时没在意这种异常的视觉。他的全部注意力集中在刚才看到的东西上:底层逻辑。这套规则有Bug。而且不止一个。
周围的混乱仍在继续。
一个穿蓝色衬衫的中年男人站了起来,朝消防通道方向走去。规则说不能走楼梯,旁边有人喊,你没看到吗?
蓝衬衫头也不回:什么狗屁规则,我在真实世界,不吃这一套。
他推开了楼梯间的门。
脚步声传来。一步,两步,三步。正常的水泥台阶回音。然后——脚步声没有变远,也没有变近。一直在响,节奏不变,像一段被写死的while(true)循环。
十秒。三十秒。一分钟。
脚步声越来越远,远到像是从几十层楼的深处传来,但这栋楼一共只有十二层。声音拉成了细线,最终融进了楼梯间深处某种低沉的、持续的呼吸声里。
再也没有人从那扇门里走出来。
有人冲过去想拉开门,门纹丝不动。里面的脚步声还在走。永远在走。
陆辞盯着那扇缓缓闭合的门,脑子里的想法很清晰:规则三不是在限制人的自由。楼梯间里有东西。这条规则是一道安全栏杆。写它的人知道里面有什么。
有些规则看起来蠢,但它在保护你。
他把这个念头压进后台,没有展开。现在不是做代码考古的时候。
时间在走。已经有人因为不敢离开工位、也不敢去领水,嘴唇开始干裂。一个年轻女生不知道是慌了还是抱着侥幸,试图靠近那个佩戴红色工牌、在楼层间缓慢巡逻的人形实体。你好——她伸手想去够那张工牌。
实体的头转了过来。
红色工牌上没有照片,没有姓名,只印着一个弧形的微笑图标。
它碰到了她的手。
她僵住了。像是被什么力量牵引着,她转身走到最近的一张空工位前,坐下。双手放上键盘。十指开始敲击。
她在笑。面部肌肉被拉成标准的微笑弧度,眼睛直视漆黑的屏幕,手指不停地敲着不存在的代码。速度均匀、节奏精确,像一段被编译好的自动化脚本。
她变成了工位的一部分。
有人尖叫。有人蹲下去干呕。陆辞没有尖叫。他在看时间。
墙上的石英钟还在走——九点四十三分。距离整点还有十七分钟。
够了。他需要这十七分钟确认一件事。
他再次集中注意力,试图调出刚才那种视觉。太阳穴的胀痛加重了一点,但规则的底层结构再次浮现出来。他仔细观察四条规则的执行线程——冲突是确定的。规则二的强制移动指令在每个整点激活,和移动限制模块产生不可调和的矛盾。冲突态意味着所有移动限制同时挂起。
大约十秒的窗口。保守估计。
他松开那种视觉,揉了一下太阳穴,然后环顾四周。找到了三个眼神还算清醒的人——一个戴眼镜的男人,看手上老茧像是同行;一个沉默的中年女性,靠着墙但没有哭,一直在观察;一个穿帽衫的大学生,虽然脸色发白但还在听周围人说话。
听我说。陆辞走过去,声音不大,但每个字清晰,这套规则有逻辑漏洞。规则二强制要求整点去12楼领水,但规则三禁止楼梯、规则四禁止电梯,把去12楼的路全堵死了。四条规则互相矛盾。
戴眼镜的男人抬起头:所以?
所以在整点那一刻,系统没法同时执行互相矛盾的指令。会短暂卡死。我估计大概十秒——电梯禁令、楼梯禁令、离开工位的限制,全部挂起。
你怎么确定?