第36章 井字遊戲
李牧揉了揉發酸的眼睛,電腦螢幕右下角的時間顯示淩晨一點四十七分。
又是一個加班的深夜。
作為一家小型網際網路公司的後端程式設計師,專案上線前的壓力像無形的巨石壓在身上。連續一週,他都是最後一個離開辦公室的人。回到租住的單身公寓,疲憊卻無法立刻轉化成睡意,大腦皮層還在為白天的程式碼邏輯亢奮著。這種時候,他習慣開啟那個叫“靜夜閣”的匿名聊天網站。
網站設計極簡,沒有頭像,沒有個人資料,隻有隨機匹配的匿名對話和幾個內建的小遊戲。李牧喜歡這裏,像數字時代的樹洞,彼此不知身份,說些無關痛癢的話,或者幹脆沉默著下一盤棋,然後各自下線,如同深夜海麵上短暫交匯又分開的航船。
通常,他玩的是五子棋。
但今晚,匹配到的這位“使用者_7J4K92”發來的遊戲邀請,是井字棋。
那個簡單到有些幼稚的九宮格遊戲。
李牧愣了一下,覺得有點好笑。這年頭,誰還玩這個?但或許正是這種無需動腦的簡單,適合此刻被程式碼掏空的自己。他點了接受。
棋盤彈出。
對方執先,幾乎在李牧點下接受的瞬間,一個“O”已經落在了正中央的格子裏。
標準的開局。
李牧隨手在左上角點了個“X”。
對方落子很快,幾乎不需要思考。第二個“O”出現在李牧“X”的旁邊,試圖構成一條斜線。李牧堵住。你來我往,僅僅六步之後,棋盤陷入僵局,和局。
【使用者_7J4K92】:再來?
李牧看著螢幕上那行簡單的白色小字,敲了個“好”。
第二局,對方依舊先手,依舊將“O”穩穩落在正中央。
這一次,李牧稍微認真了點,試圖走個不同的套路。但無論他如何落子,對方的應對都精準得近乎刻板,總是封堵他最可能的連線,同時悄無聲息地構建自己的優勢。又是七步,再次和局。
李牧挑了挑眉。有點意思。井字棋的先手優勢理論上可以保證不敗,但要做到每次都精確走向和局,也需要一點計算。這個對手,似乎很熟悉這個遊戲的所有可能路徑。
第三局,第四局……時間在無聲的落子中流逝。
每一局,都是“使用者_7J4K92”先手,落子中央。每一局,最終都是和局。
李牧漸漸感到一種微妙的怪異。不是對手的水平,而是這種千篇一律的模式。先手,中格,和局。像一段被設定好的程式,精準,重複,毫無波瀾。
窗外的城市已經徹底沉入睡眠,隻有遠處零星幾點燈火。李牧打了個哈欠,準備結束這無聊的重複。
【使用者_7J4K92】:最後一局?
對方似乎察覺到了他的意圖。
李牧想了想,回複:“行,最後一局。”
棋盤再次展開。白色的“O”如預料般占據中心。李牧忽然起了個念頭,他沒有按照任何常規走法,而是故意將第一個“X”放在了最邊緣、最不可能構成威脅的右下角。
他想打破這個迴圈,看看對方會不會有不一樣的反應。
落子後,他等了幾秒。
對方似乎“猶豫”了。不是人類那種因思考而產生的延遲,而是一種更細微的、難以言喻的停頓感,彷彿執行中的程式卡頓了一幀。
然後,“O”落在了李牧預想中它最不該落的位置——緊貼著李牧那個孤零零的右下角“X”。
這步棋毫無意義,甚至放棄了中央開局帶來的微弱優勢。
李牧愣住了。他盯著螢幕,手指懸在滑鼠上方。這不符合邏輯,不符合之前任何一局展現出的那種精確性。他試著走了一步,對方緊接著又走了一步看似隨意的棋。
棋盤上的局勢變得混亂,但李牧很快發現,這種混亂是表麵的。在看似無章的落子背後,對方依然牢牢掌控著局麵,每一步都巧妙地將棋局引向……不是勝利,也不是失敗,而是一種他從未在井字棋中見過的、奇特的平衡。
最終,當第九個棋子落下,棋盤填滿時,李牧驚訝地發現,這依然是一個和局。隻是這個和局的達成路徑,與他所知的所有標準解法都不同。
一種說不出的感覺爬上脊背。像是精密鍾表裏突然出現了一個不合規格的齒輪,雖然依舊走時,卻發出了不一樣的聲響。
【使用者_7J4K92】:晚安。
對方留下兩個字,頭像瞬間灰暗,下線了。
李牧盯著那個灰暗的頭像和最後那盤詭異的和局,看了很久,才關掉電腦。
第二天晚上,加班依舊。
接近午夜,李牧回到公寓,洗漱完畢,鬼使神差地又點開了“靜夜閣”。
他剛上線不到一分鍾,一條遊戲邀請就彈了出來。
來自“使用者_7J4K92”。
井字棋。
李牧皺了下眉,點了接受。他想確認一下昨晚是不是自己的錯覺。
開局,對方先手,“O”落中央。
李牧深吸一口氣,決定複刻昨晚最後那局自己那種“亂下”的開局。他將“X”放在右下角。
這一次,對方沒有停頓。“O”幾乎立刻落下,位置是——左上角。
一個標準的、遠離李牧棋子的應對。
李牧繼續“亂下”,對方則恢複了那種精準而刻板的走法,七步之後,和局。
接著是第二局,第三局……一切又回到了最初的樣子:先手,中格,精準,和局。昨晚最後那局詭異的對弈,彷彿從未發生過。
李牧嚐試在聊天框裏打字:“你很喜歡井字棋?”
沒有回複。對方隻是安靜地發出下一局邀請。
李牧點了接受,同時意識到,這個對手似乎從不交流,除了最初那句“再來?”和昨晚的“晚安”,再無他言。他就像一台專門下井字棋的機器。
這個念頭讓他稍微放鬆了些。也許真的是個無聊的程式,或者某個性格孤僻、隻沉迷於這個簡單遊戲的人。
接下來的幾天,幾乎成了固定的模式。隻要李牧在深夜登入“靜夜閣”,“使用者_7J4K92”的遊戲邀請總會如約而至。有時李牧加班太晚,淩晨兩三點才上線,對方似乎也線上等著。李牧試過早一些,晚上十點左右上線,對方卻不在。這個“對手”彷彿隻存在於深夜最寂靜的那段時間。
對局內容也一如既往地重複。先手,中格,和局。李牧試過所有可能的開局變化,甚至故意走錯,對方總能將棋局拉回平局。他從未贏過,對方也從未輸過。
一種詭異的默契在無聲的棋盤上建立起來。李牧不再試圖打破,甚至開始依賴這種重複。在充滿不確定性和壓力的白天之後,這種絕對確定、絕對可控的簡單遊戲,竟成了他深夜的一種奇特慰藉。他知道每一步會怎麽走,知道結局必然是那個填滿的九宮格,知道不會有任何意外。
直到第五天晚上。
那天專案出了個嚴重的線上bug,李牧和團隊忙到淩晨四點才勉強修複。身心俱疲地回到家,他幾乎癱倒在椅子上。但某種習慣性的力量,還是讓他開啟了電腦,登入了“靜夜閣”。
不出所料,邀請立刻彈出。
李牧勉強集中精神,開始對局。手指因為疲憊而有些發抖。對方的落子依舊穩定、迅速。
也許是太累了,也許是連續多日的重複讓他產生了惰性,在第五步時,李牧犯了一個極其低階的錯誤——他漏看了對方一個潛在的雙活三,沒有去堵截。
當他落下自己的“X”後,螢幕似乎凝固了一瞬。
然後,對方的“O”落下,輕輕巧巧地連成了三條線。
贏了。
“使用者_7J4K92”贏了。
李牧盯著螢幕上那個被三個“O”貫穿的棋盤,一時沒反應過來。贏了?這個永遠在和局的對手,贏了?
而且,是因為自己的失誤。
一種難以言喻的感覺湧上來,不是挫敗,更像是……某種平衡被打破了的不安。就像一直勻速運轉的機器,突然卡頓了一下,發出了刺耳的噪音。
聊天框裏,第一次由對方主動跳出了一行字,不是邀請,不是告別。
【使用者_7J4K92】:你累了。
李牧的手指停在鍵盤上,不知該如何回複。對方卻已經發來了新的邀請。
他猶豫了幾秒,還是點了接受。
棋盤展開。白色的“O”落下。
依舊是最中央。
李牧甩甩頭,試圖集中精神。這一次,他小心應對,步步為營。棋局很快又走向熟悉的僵持。當第八個子落下時,棋盤上隻剩下最後一個空格。
按照規則,輪到李牧落子。這最後一個“X”無論下在哪裏,都將是和局。
他移動滑鼠,準備點下那個空格。
就在滑鼠即將點選的瞬間,異變突生。
棋盤上,那個屬於“使用者_7J4K92”的、已經落在某個格子裏的“O”,突然消失了。不,不是消失,是移動——它像被無形的橡皮擦抹去,又像被一隻看不見的手拖動,瞬間出現在了最後一個空格上!
第九格被占據。
棋盤填滿。
但這不是和局!因為此刻,棋盤上,“使用者_7J4K92”的“O”有四個!而李牧的“X”,隻有四個!多出來的那個“O”,正是剛才“移動”過來的那個!
李牧猛地後仰,撞在椅背上,眼睛死死盯住螢幕。
這不可能。遊戲規則不允許移動已落的棋子。是bug?還是……
更讓他頭皮發麻的事情發生了。
那個多出來的、本不該存在的“O”,開始緩緩變化。它的線條扭曲、延伸,不再是一個規整的圓圈,而是像有生命般在九宮格的方寸之間遊走、勾勒。
它畫出了一條斜線,又畫出了一條豎線,最後,在棋盤的中心交匯。
那不是什麽隨意的塗鴉。
那是一個清晰的、標準的“十”字坐標標記。
而在“十”字中心,那個原本是棋盤正中央的位置,浮現出一行極小、但異常清晰的數字:
31.2304° N, 121.4737° E
李牧的呼吸停滯了。
他懂經緯度。這是一個地理坐標,一個極其精確的坐標。
沒等他做出任何反應,聊天框再次跳動。
【使用者_7J4K92】:來找我。
下一秒,對方的頭像灰暗。不是下線的那種灰色,而是整個聊天視窗都開始扭曲、淡化,如同浸入水中的墨跡,短短兩三秒內,連同那個畫著坐標的棋盤,徹底從螢幕上消失了。
李牧的房間裏,隻剩下他粗重的呼吸聲,和電腦風扇低沉的嗡鳴。
他呆坐了很久,直到窗外的天空泛起灰白。那個坐標像燒紅的烙鐵,燙在他的視網膜上。
31.2304° N, 121.4737° E。
他顫抖著手,開啟搜尋引擎,輸入這串數字。
地圖載入出來,比例尺不斷放大,定位精確地落在——
城市邊緣,一個早已廢棄多年的、名叫“永寧”的舊式公墓。
坐標點,不偏不倚,定格在公墓深處,某個無名墓穴的位置。
李牧猛地關掉了網頁,心髒在胸腔裏狂跳。
找……他?
去那裏?
寒意從腳底竄起,瞬間蔓延全身。他想起那些千篇一律的和局,那個永遠先手落在中央的“O”,那個因為自己疲憊失誤而出現的、打破平衡的“勝利”,以及最後那匪夷所思的“移動”和精確到可怕的坐標。
這不是遊戲。
至少,不是他理解的那種遊戲。
那些重複的、彷彿程式設定的和局,像是一種耐心的校準,或者……等待。等待他習慣,等待他鬆懈,等待那個“錯誤”的發生。而當平衡一旦被打破,某種東西就獲得了“行動”的許可,將資訊傳遞了過來。
一個邀請。或者說,一個指令。
李牧站起身,在狹小的公寓裏來回踱步。不去,當然不去。這太荒謬,太危險了。
可那個坐標,那個“來找我”的訊息,卻像魔咒一樣纏繞著他。他試圖告訴自己,這可能是某個黑客高手的惡作劇,是某種新型病毒或者AR互動遊戲。但內心深處,有一個冰冷的聲音在問:什麽樣的惡作劇,能精準到公墓裏一個具體的位置?又是什麽樣的存在,會花費整整五個夜晚,用無數局單調的井字棋,來鋪設這樣一個詭異的“邀請”?
白天,他精神恍惚,程式碼敲錯了好幾次。同事問他是不是沒休息好,他勉強笑笑,腦海裏卻全是那個九宮格和十字坐標。
第二天深夜,他再次登入“靜夜閣”。
“使用者_7J4K92”不線上。好友列表裏,甚至搜尋不到這個ID。
彷彿從未存在過。
李牧翻遍了聊天記錄,除了最後那局憑空消失的對局,之前的記錄都在。那些重複的、無窮無盡的和局記錄,此刻看起來,像是一串冗長而沉默的密碼,指向一個他無法理解的目的。
他嚐試在網站上發帖詢問,描述了這個ID和井字棋的事。回複寥寥,大多認為是無聊的編造,或者建議他檢查電腦是否中毒。
一週過去了,生活似乎恢複了表麵的平靜。專案終於上線,加班減少。李牧強迫自己不再去想那個坐標,不再去登入那個網站。
直到某個加班的雨夜。
他處理完最後一點工作,辦公室隻剩下他一個人。雨點敲打著玻璃窗,發出單調的聲響。他關掉電腦,準備離開。
目光掃過辦公桌,落在旁邊一疊廢棄的列印稿上。
最上麵一張A4紙,是之前測試時隨手列印的亂碼。此刻,在台燈昏黃的光線下,那些亂碼的墨點之間,似乎隱約構成了什麽圖案。
李牧下意識地拿起來,對著光仔細看。
他的血液瞬間凍結了。
那些散亂的黑色墨點,不知是列印時的巧合,還是光線造成的錯覺,竟然隱約連線成了一個極其簡陋的、歪歪扭扭的九宮格。
而在九宮格的正中央,一個淡淡的、圓形的痕跡,像是水漬,又像是油墨褪色,恰好印在那裏。
像一個“O”。
一個落在正中央的“O”。
紙張從他顫抖的手中飄落,無聲地滑到地上。
窗外的雨聲似乎變大了,嘩啦啦地,像是無數細碎的腳步,從黑暗的四麵八方,向著這棟亮著孤燈的辦公樓,慢慢圍攏過來。
李牧僵硬地站在原地,目光無法從地上那張紙移開。
他知道,遊戲還沒有結束。
或者說,從他接受第一局邀請的那一刻起,遊戲就永遠不會結束了。對方隻是換了一種方式,在繼續落子。
而下一步,該他走了嗎?
他該走向那個坐標嗎?
冰冷的雨水順著玻璃窗蜿蜒流下,倒映著室內慘白的燈光,像一道道淚痕,也像棋盤上緩緩畫出的、等待連線的線。
(本章完)