在數字排序遊戲中選擇下一步的方式是:先讀取每一張牌上印的數字,找出最小的牌,將它向左滑動,同時最大的牌向右移動,重複這個過程直到牌列從小到大排列。在 Speed Sorting Game 中,這單一規則取代了顏色配對、隱藏插值和反應計分:每張牌除了顯示簡短的清單標籤之外,還會顯示其精確的數字排名,而唯一的目標就是嚴格的遞增順序。因為每一回合使用不同的排名,所以只有一種最終有效序列,而你的下一步決策形狀永遠相同——識別最左邊空位所需的排名,在牌列上找到那張牌,並將它歸位。拖曳、觸控點對點和鍵盤方向鍵交換都透過同一個 reducer 執行,因此你選擇的輸入方式並不會改變你必須遵循的規則。沒有限時的步調和一個五回合、固定 1,000 分的路線,讓你可以從容思考而不是在壓力下猜測。

為什麼數字排名是你唯一需要的訊號
在 Speed Sorting Game 中,每張牌除了顯示簡短的清單標籤之外,還印有其精確的排名。那個印出的排名是你下一步唯一應該考慮的事——不是背景、不是牌偶然排列的順序,也不是任何你尚未讀取的相鄰牌的相對位置。因為每一回合使用不同的排名,所以你看到的牌列只有一種最終有效序列,而任何其他排列,根據定義,都偏離了該目標。這使得你的決策空間非常小:對於任何給定的最左邊位置,恰好有一張牌屬於那裡,而那張牌的排名就在牌列上的某處。你的任務就是找出它並將它歸位。
其他排名遊戲依靠色相、亮度、顏色插值或隱藏的視覺步驟。Speed Sorting Game 這些都不用。它要求你閱讀數字,而不是估計漸層或推斷未標明的類別。在每一種設定下也是如此——單色顯示、降低的色彩視覺、瀏覽器縮放和輔助技術都能讀取相同的數字——因此「找出排名並向左滑動」的規則在所有裝置上都是通用的。正是這種一致性讓你的下一步推理保持簡短:沒有需要考量的隱藏層次。
在動手之前先讀取印出的排名
第一個有用的習慣是在你決定交換之前,先讀取牌列上的每一張牌。五到七張牌是一個小集合,單一次的掃視就能給你完整的全貌:目前最小的排名在哪裡,目前最大的排名在哪裡,以及哪些中間排名仍需要移動。優先閱讀也能避免最常見的選擇錯誤——移動一張你尚未確認的牌。如果你在確認哪個排名是最低之前就交換,你可能會移錯牌,然後基於過時的心理圖像進行推理。
閱讀也能揭示該回合特定的排名格式,這很重要,因為五個固定的清單使用不同的列印樣式,但不改變規則:
| 回合 | 清單 | 印出排名的格式 |
|---|---|---|
| 1 | 包裹佇列 | 精簡的正數包裹代碼 |
| 2 | 簽收收件 | 正整數與負整數混合 |
| 3 | 小數分派 | 明確的小數排名 |
| 4 | 貨架帳冊 | 帶有填補的抽象標籤,同時也印出底層整數 |
| 5 | 最終貨運 | 帶有填補的抽象標籤,同時也印出底層整數 |
簽收收件是大多數讀者會停下來思考的回合,因為負數位於零的左側,且遠在所有正數的左側。將「負」視為一個方向,而非「最小的標籤」:值越負,它就越應該在左邊。小數分派是讀者最常憑肉眼進位的回合;請務必精確讀取印出的小數,因為兩個視覺上相似的小數可能在第二位或第三位有所不同。對於貨架帳冊和最終貨運中帶有填補的抽象標籤,底層印出的整數才是權威——標籤僅作為識別用途,絕不會改變順序。
用三個邏輯動作決定你的下一次交換
一旦你讀完每一張牌,選擇你的下一次交換就變成一個三步驟的迴圈。這個迴圈短到足以保存在工作記憶中,也短到你可以從最左邊的位置重複到最右邊的位置,而不會搞混自己目前進度。
- 識別屬於目標序列最左邊空位的排名。如果牌列上最左邊的牌已經是那個排名,則不要動它,將注意力移到下一個位置。
- 在牌列上找到那個排名。注意它目前的位置,然後選擇任何位於最左邊位置的夥伴牌(或任何你已經知道其目的地的牌)。
- 執行一次交換。在 Speed Sorting Game 中,每次交換都是一次真正的交換:兩張牌交換位置,沒有牌被銷毀,而新的排列就是你下一次決策的輸入。
為第二個位置、第三個位置等等重複這個迴圈。因為規則嚴格遞增,每個完成的左側位置永遠不需要再被觸碰。從左到右鎖定位置也能提供一個可見的進度提示,這在一回合包含六或七張牌而非五張時特別有用。如果你需要有關通常會打亂一趟遊戲的交換選擇的額外指導,那份關於避免數字排序遊戲中常見錯誤的指南會將每個錯誤對應到造成該錯誤的交換動作上。
將你的輸入方式與你剛才選擇的交換動作配對
執行你交換動作的 reducer 對每種輸入方式都相同,因此選擇指標、觸控或鍵盤純粹是基於人體工學。每種路徑都有適合不同決策類型的時機。
| 輸入方式 | 最佳使用時機 | 實際作用 |
|---|---|---|
| 指標拖曳 | 當你想要交換的兩張牌在牌列上視覺上相鄰時 | 按住第一張牌,將其拖曳到第二張牌上方,放開;兩張牌交換位置 |
| 觸控點對點 | 當裝置不支援瀏覽器拖曳,或當兩張牌在牌列上相距很遠時 | 點擊第一張牌,然後點擊目的地牌;執行相同的交換 |
| 鍵盤 | 當你想將目光保持在印出的排名上,而非指標上時 | 透過 Tab 鍵進入牌列,使用方向鍵聚焦某張牌,按 Enter 或 Space 鍵選取,然後按方向鍵與相鄰牌交換 |
指標使用者會看到選取的牌在游標下明顯地抬起。觸控使用者透過原生 pressed 屬性看到選取狀態,因此他們可以在確認第二次點擊之前先確認自己的選擇。鍵盤使用者在每張牌上都會獲得可見的聚焦框,並且在每次方向鍵交換後,漫遊焦點會跟隨邏輯游標,使眼睛能保持在數字上而非滑鼠游標上。所有三條路徑共享同一個純交換 reducer,這意味著當你更換裝置時,你的決策邏輯不需要改變。
當一次不正確的檢查仍告訴你一些事情時
一次不正確的檢查並不會結束該回合。它會記錄一個失敗簽章,由回合識別碼與檢查當下牌列上的精確順序所構成。重新檢查同一未變更的錯誤順序並不會增加第二次失敗——因為簽章沒有改變,所以引擎會進行去重。然而,重新排列牌組,然後提交一個真正不同的錯誤順序,會建立第二個獨特的簽章並結束這趟遊戲。
記住這一點對於你選擇下一步是有幫助的。如果一次檢查失敗且螢幕上的狀態是可修復的,你可以繼續交換,而不必擔心重複的懲罰。如果一次檢查失敗且狀態表示死鎖,你的下一步決策是按下重新開始,並從未排序的開頭排列而非從鎖定的排列來推理該回合。重新開始會將牌列回復到其原始排列,並將本地最佳分數重置為其未變更的值,因此重新開始絕對不是一項沉沒成本。
兩個實用的習慣能充分利用這個設計。第一,當一次檢查失敗時,不要立即隨機交換兩張牌——重新讀取排名並確認哪個位置是錯的,然後針對該位置下手。第二,在每次確認正確的檢查之後,等待下一回合載入再進行任何操作,因為焦點會跳到第一張新牌,而你希望你的第一次交換落在新的牌列上,而非正在結束的牌列上。
從五個已排序的牌列到 1,000 分
獎勵結構是固定的且可預測的。一個正確的清單確切地獎勵 200 分,並立即載入下一個固定回合。對於快速交換、更少的動作或特定的輸入方式沒有額外的獎勵分數,對於花時間思考也沒有扣分。五個正確的回合會產生最高分數 1,000 分,且分數永遠不會因為動畫計時、裝置速度或輸入路徑而改變。
正是這種固定的獎勵結構使得你的下一步在各回合之間保持一致:每個清除的清單價值相同,每個回合具有相同的遞增目標形狀,且每個回合都以一個刻意未排序的排列開始。名稱中的「速度」指的是自我挑戰以有效率地進行排序,而非測量反應時間。優先閱讀、以三個邏輯動作進行交換、挑選適合當下的輸入方式,並將一次不正確的檢查視為資料而非失敗,這些將能讓你以相同的程序完成所有五個清單。
一旦你清除了第五個清單,遊戲會凍結所有的 reducer,且只有重新啟動能將牌列回復到可排序的狀態。可選的本地最佳分數(如果啟用的話)會透過共享的 GameShell 儲存在瀏覽器中,並不會影響本身具有確定性的 1,000 分路線。一切都在本地使用 React 和普通按鈕執行,因此你剛完成的這趟遊戲中沒有帳號、上傳或外部 API 的成分。