马蹄声越来越近,地面上的石子都在跳。
老鸦把烟杆往腰里一插,扯起猪仔的后腿就往矿口侧面的乱石沟里钻:“别愣着!这边!”
“这边是悬崖——”
“悬崖底下有水道!白大人三十年前修的逃命路,你当我是怎么活到今天的?”
一人一猪一老头连滚带爬地滑下乱石沟。崖壁裂开一道缝,缝里是条半干的水道,黑漆漆的,一股陈年青苔味。三人挤进去,用乱石堵住洞口,刚藏好,头顶就传来马蹄踏过的闷响。
“搜!脚印到这儿就断了——两个活人加一头猪,跑不远!”
猪仔在黑暗里撇撇嘴:两个活人加一头猪——合着它连"活人"都不算。算了,猪生艰难,不跟通缉犯计较。
“嘘。“老鸦按住它,“等斥候过。”
一个黑甲斥候举着火把,从崖缝外走过,脚步慢下来,火光一点一点逼近洞口。莉莉握紧剑柄,冷汗顺着鬓角往下淌。
猪仔眯起眼——调试器·初级,展开。
斥候头顶浮现出一行流动的灰字:
while(搜索){ 检查(左侧); 检查(右侧); } ← 当前执行行
猪仔的眼睛,一下子亮了。
“……别动。“它用气声说,“他检查完左边,就检查右边——“火光晃了晃,斥候朝左侧崖壁照了照,又转向右侧,"——中间,是他的盲区。写这段巡逻脚本的人,忘了写’中间’。”
火光掠过崖缝,没有停留。斥候的脚步声,渐渐远了。
莉莉长出一口气,整个人瘫在石壁上:“你、你怎么知道他不会看中间?”
“他头顶写着呢。“猪仔得意地抖抖耳朵,“新装的调试器,能看到别人’正在执行哪一行’——这不,一眼就看出他脚本里有个大坑。”
“……你管’忘了搜中间’叫’坑’?”
“对程序来说,这就是个送命的 bug。“猪仔龇牙,“今晚它救了咱仨的命。”
水道很长,走了大半夜。天蒙蒙亮时,老鸦在一堵石壁前停下,摸索着推开一道暗门,门后是一间堆满杂货的老仓库——旧城区,到了。
老鸦把门关严,从货堆里翻出一张泛黄的纸铺在桌上,纸上画着旧城区的街巷,一角用朱砂标着一口井:“枯井,在老槐树巷底。井底下,是古罗兰王朝的地宫。”
“白大人当年查档案,查到王都地下埋着东西,画了图,却一天都没下去过。“老鸦顿了顿,“因为下去的人,没有一个回来过。”
仓库里安静了一瞬。猪仔低头看了看怀里那两块发烫的碎片——它们正固执地指向地下,指得比任何时候都用力。
“第三块,就在那儿。“它说。
“我知道。“老鸦叹了口气,“白大人当年把两扇门的钥匙都交给我——矿洞那扇,我守完了。地宫这扇,今天交给你。”
“你为什么不下去?“猪仔问。
老鸦沉默了很久,久到莉莉以为他不打算回答了,他才开口:“我答应过他,不下去。他说’那底下不是给活人准备的’——我信他。但我也信,他留的这条线索,是给’能看懂’的人准备的。“独眼盯着猪仔,“你,就是那个人。”
白天,猪仔和莉莉藏在仓库里。老鸦出去转了一圈,回来时脸色不太好看:“通缉令又换了,悬赏八十金币——‘偷钥匙的贼,会说话的猪,能写魔法的那种’。核心塔把案子,交给了净化者办。“他顿了顿,“听说那净化者,灰绿瞳,年轻姑娘。”
猪仔的耳朵抖了抖。零七。
“……熟人。“它说,“但愿她办案慢一点。”
入夜,旧城区,老槐树巷。
枯井井沿长满青苔,被一块大石板压着。老鸦用烟杆撬开石板,一股阴冷的风从井底涌上来,带着一种"很旧"的味道——像打开一间三十年没人进过的机房。
老鸦没下去。他蹲在井口,把烟杆往嘴里一叼:“我在上头看着。听见不对,我就喊。”
猪仔探头往下看,井壁上有踏脚的石坑,一路向下,黑得不见底。
“……莉莉。“它忽然说,“你认得路吗?”
“认——认得啊!“莉莉挺了挺胸,“我记路可好了!”
“那你告诉我,咱们现在是往南还是往北?”
“……往、往下!”
猪仔:"……行,你赢了。你确实记路。走吧,往下。”
井壁的石坑一路延伸,爬了十几丈深,脚下终于踩到实地。猪仔抖了抖蹄子,系统自动展开视野——然后它愣住了。
这哪是地宫。这是一整座"被冻住"的城市。
巨大的石柱撑起穹顶,两侧是成排的石俑——兵士、侍女、官员,全都保持着行走的姿势,有的抬着脚,有的张着嘴,像在一瞬间被按下了暂停键。它们的身上,浮着密密麻麻的灰字,游动着、闪烁着。
猪仔"读"了过去,眉头越皱越紧。
while(站岗){ 站岗; }
while(行走){ 行走; }
while(说话){ 说话; }
全是死循环。它们不是石俑——是活人。是卡死的人。
“……这就是白大人说的’漏气’。“猪仔低声说,“比矿洞那边严重一百倍。王都地下,全是卡住的人。”
莉莉打了个寒颤:“他们……还活着吗?”
“活着。“猪仔的声音发涩,“只是永远停在了那一刻。就像程序跑进死循环——人还在,进程没死,就是再也动不了了。”
它怀里,两块碎片烫得惊人,指着地宫深处。猪仔深吸一口气:“走吧,第三块,就在里面。”
地宫很深。越往里走,卡死的身影越多——有些保持着奔跑的姿势,有些跪着,有些伸着手,像要抓住什么。莉莉紧紧握着剑,拐了两个弯就开始分不清方向,猪仔不得不每隔十步,就在墙上留一个”//“记号。
“这地方……好安静。“莉莉小声说,“安静得吓人。”
“安静才好。“猪仔说,“说明——”
话音未落,前方走廊尽头,传来一声金属摩擦的巨响。
“——说明来了个不安静的。”
走廊尽头,一尊三米高的铁俑正缓缓转动身躯。它和矿洞的铁傀儡不一样——身上贴满了金色的补丁,胸口嵌着一块疯狂旋转的符盘,像一颗巨大的硬盘。它"看"向闯入者,发出锈蚀的嘶吼,举拳砸来!
“躲开!“莉莉一把推开猪仔,举剑格挡——“铛!“剑身震得嗡嗡作响,莉莉虎口崩裂,鲜血直流。
猪仔滚到墙角,系统疯狂报警。调试器展开——铁俑头顶浮现一行代码:
while(入侵者){ 攻击(入侵者); } ← 当前执行行
“……死循环攻击程序。“猪仔的眼睛亮起来,“没有退出分支,只会一直打——”
铁俑再次举拳砸下。猪仔就地一滚,扯着嗓子念出这行"补丁”:
if(攻击(入侵者) 连续失败 三次){ 自检(发现错误); 停止; }
“什么?!“莉莉瞪大眼睛。
铁俑的拳头停在半空。它开始"自检"了——第一拳被莉莉格挡、第二拳被猪仔躲开,“连续失败"的记录触发了自检分支,而自检发现"攻击连续失败"这个异常,于是……
“咔——”
铁俑保持着举拳的姿势,彻底停了。符盘越转越慢,最后"叮"的一声,停住了。
“它、它停了?!“莉莉不敢相信。
“它只会攻击,不会’思考失败’。“猪仔擦了擦鼻血,“我只是告诉它:打不到人,就得先检查自己哪里错了——程序员最怕的就是’自查’。一自查,发现自己满身 bug,当场社死,停工了。”
“……你管这叫’社死’?”
“对一个程序来说,发现自己是个 bug,比死还难受。“猪仔龇牙,“我这叫心灵打击。”
代价:算力 112→78。猪仔喘了两口,来不及歇——前方,地宫的最深处,到了。
那是一个巨大的穹顶大厅。大厅中央矗立着一座山一样的金属造物——残破的机柜、缠绕的缆线、碎裂的水晶屏幕,被岩石和藤蔓包裹着,像一头沉睡的钢铁巨兽。这是它见过的,最完整的服务器残骸。
而残骸的核心,一块拇指大的、泛着蓝光的碎片,正悬浮在半空,缓缓旋转。
第三块源码碎片。
“……找到了。“猪仔的呼吸都轻了。
它刚迈出一步,残骸上最大的一块水晶屏幕,忽然"唰"地亮了。幽蓝的光照亮整座大厅,屏幕上浮现出一行字:
LOGIN: 白
白——白袍人。他来过这里。他登录过这台机器。然后他走了,再也没有下来。
猪仔盯着那行字,心里忽然涌上一个念头:他当年,到底是看到了什么,才"不敢下"的?
就在这时,身后传来一声轻微的、关节摩擦的声响。
“咔。”
猪仔猛地回头。
大厅边缘,那些保持着行走姿势的卡死身影——那些数百年来被冻在死循环里的"古人”——正在一具一具地,转动它们的头颅。
朝着它。
碎片散发的蓝光落在它们身上,像一条被接通的电源线。卡死的身影,正在"解冻”。
“……坏了。“猪仔的声音发干,“这碎片……是它们的时钟源。我靠近它,等于给它们——通了电。”
“咔、咔、咔——”
关节的摩擦声越来越密。一具具身影,缓慢地、僵硬地,朝着大厅中央转过身来。
而头顶的井口方向,隐隐传来马蹄声。
老鸦的声音被风扯得断断续续,从井口远远飘下来:
“猪仔——!黑甲……找来了——!”
—— 本章完 ——