線上配對圖形,靠的是一個五對配對的瀏覽器解謎遊戲,每答對一個剪影就會拿到恰好 200 分,五個全部配對完成後總分正好是 1,000 分。這個板面包含五個原創的 SVG 圖形——Arch、Diamond、Hexagon、Chevron,以及 Capsule——都是在本機端算繪出來的,而不是以圖片、表情符號,或外部美術素材匯入的,因此每一個圖形在每一次洗牌後,視覺上都保持一致。每一個來源圖形,都恰好對應一個由相同 shape ID 識別的目標剪影,這代表這個解謎遊戲有一條確定性的路徑,可以由獨立測試來稽核,而不是仰賴隱藏的機率。同一項任務,可以透過指標拖曳、兩步驟點擊,以及以位置為基礎的鍵盤輸入來完成,因為這三種輸入方式,最終都呼叫同一個底層的 reducer,因此一輪遊戲可以完全靠手機、桌上型滑鼠,或實體鍵盤來完成,不需要另外學一套控制方式。預設的起始版面,把來源圖形排成 Arch、Diamond、Hexagon、Chevron、Capsule,把剪影排成 Hexagon、Capsule、Diamond、Arch、Chevron——這是一種刻意造成的順序錯位,讓這個解謎遊戲保持可玩性,而不會一眼就洩漏答案。要開始一輪遊戲,只要開啟Shape Matching Game,選擇任何一個來源圖形,再用你的裝置支援的任何一種輸入方式,把它導向它對應的剪影即可。

Shape Matching Game 板面裡有什麼
這個解謎遊戲刻意設計得很小:一欄來源圖形、一欄目標剪影,以及五組同 ID 的配對,完成這五組就能結束板面。因為這些幾何圖形是用本機端的 SVG 與 CSS 標記算繪出來的,所以每一個圖形在每一次洗牌之間都會保持同樣的輪廓,因此每一輪唯一會改變的,只有欄位中的位置。這裡沒有匯入的圖片集、沒有表情符號庫、沒有模型,也沒有任何外部資料集餵給這個板面。這五個圖形,是抽象的幾何形狀——Arch、Diamond、Hexagon、Chevron,以及 Capsule——它們並不編碼任何發展性標準、文化符號系統,或分類主張。這一點對這條規則來說很重要:每一個來源圖形,恰好對應一個相同的剪影,而那一組配對,正是板面上唯一合法的相符結果。
| 來源圖形 | 對應的剪影 ID | 預設的來源位置 | 預設的剪影位置 |
|---|---|---|---|
| Arch | Arch | 1(左欄,第一個) | 9(右欄,第四個) |
| Diamond | Diamond | 2 | 8 |
| Hexagon | Hexagon | 3 | 6 |
| Chevron | Chevron | 4 | 0 |
| Capsule | Capsule | 5 | 7 |
表格中的位置欄位,指的是預設版面,而不是按下 Shuffle 之後重新排列過的板面。來源順序(Arch、Diamond、Hexagon、Chevron、Capsule)與剪影順序(Hexagon、Capsule、Diamond、Arch、Chevron)之間刻意造成的錯位,是設計的一部分:它讓這個解謎遊戲維持可解,同時保留一條可供外部測試從公開的 shape ID 重新推導出來的字面驗證路徑。
如何玩 Shape Matching Game
- 在你的瀏覽器中開啟 Shape Matching Game,讓來源欄出現在左側,剪影欄出現在右側。
- 用拖曳(按住它,再放到某個剪影上放開)、點擊(先選取這個圖形,再選取它對應的剪影),或是用鍵盤按鍵 1 到 5 對應五個來源位置,來選取一個來源圖形。
- 透過在對應剪影上放開指標、點擊相同 ID 的剪影,或按下 6、7、8、9 或 0 對應五個目標位置,來選取相符的剪影。
- 觀察分數增加 200 分,且兩個格子都會變成無法再選取;目前的選取狀態會自動清除,因此下一組配對會從一個中立狀態重新開始。
- 針對剩下的四組配對重複同樣的動作,直到分數恰好顯示 1,000,且板面已清空為止。
拖曳、點擊,與鍵盤路徑共用同一條規則
三種輸入方式最終都會匯聚到同一個 reducer,這也是為什麼這個遊戲不需要為滑鼠、觸控與鍵盤玩家各自準備一套邏輯。指標使用者按下一個來源圖形,再把它放開到一個剪影上。這項互動使用的是指標事件與命中測試,而不是 HTML5 的拖放功能,因此觸控與滑鼠共用同一套邏輯,不需要為了在手機或平板上運作,另外處理一個僅限桌面版的相依項目。點擊使用者則遵循一個兩步驟流程:先選一個圖形,再選它對應的剪影。鍵盤使用者可以按 1 到 5 選取五個可見來源位置中的任何一個,並按 6、7、8、9 或 0,選取五個可見目標位置中的任何一個,順序依照洗牌後目前欄位排列的樣子。
因為同一條規則支撐著全部三種路徑,這個遊戲不會在不同輸入方式之間出現行為漂移。用拖曳拿到 200 分的一組配對,用點擊或鍵盤同樣也會拿到 200 分,而同樣的原子性無動作規則,適用於每一種路徑:未知的 ID、已經配對過的來源、已經配對過的剪影,以及重新選取目前已選的圖形,都不會改變分數、已配對數量,或錯誤次數。正是這種一致性,讓單一一次稽核,就能完整描述這個解謎遊戲的行為,而不需要去推敲每一步是由哪一種輸入方式產生的。
計分、失誤,以及終局狀態
一次成功的配對會拿到 200 分,把那一組配對從後續遊戲中移除,並清除目前的選取狀態。因此五次成功的配對,總分正好是 1,000 分。錯誤的配對,則由一條單一、可挽回的失誤規則來處理:一個來源與一個不同的目標配對在一起,算作一次失誤。系統會記住這組「來源—目標」的特徵組合,因此重複同一組錯誤配對,會被判定為純粹的無動作,第二次點擊同一組錯誤配對,不會再增加一次失誤。而第二次、不同的錯誤目標——也就是跟第一次不同的來源對目標組合——則會關閉這個版面,並結束這一輪遊戲。
| 事件 | 對分數的影響 | 對已配對數量的影響 | 對錯誤次數或遊戲狀態的影響 |
|---|---|---|---|
| 正確的同 ID 配對 | +200 | +1 | 不變 |
| 第一次不同的錯誤配對 | 不變 | 不變 | +1 次可挽回的失誤 |
| 重複同一組錯誤配對 | 不變 | 不變 | 不變(無動作) |
| 第二次不同的錯誤配對 | 不變 | 不變 | 遊戲結束(死局) |
| 原子性無動作(未知 ID、已配對項目、重新選取) | 不變 | 不變 | 不變 |
| 第五次正確配對 | 最終總分 1,000 | 5 | 板面進入終局狀態 |
當這個板面結束時——不論是完成全部五組配對,還是因為第二次不同的錯誤目標觸發了死局——來源、目標,以及 Shuffle 全都會被停用。Reducer 的防護機制,即使某個動作是以程式方式呼叫的,也能維持這個終局狀態,因此一個已完成或已陷入死局的板面,不會因為零星的點擊、按鍵,或排隊等待的事件,而被悄悄地倒轉回去。
Shuffle、Restart,以及可重現性
Shuffle 是一項明確的使用者動作。它會對兩欄套用一個純函式、帶種子的 Fisher-Yates 排列演算法,搭配一個可注入的隨機來源,讓結果對任何選定的種子來說都是確定性的。它不會在算繪期間隱含地觸發,也不會作為某次互動的副作用而觸發;如果你想要一個全新的排列,你必須主動要求它。這個洗牌只會改變位置——絕不會改變配對身分,也絕不會改變計分——因此底層的同 ID 對應關係,會從一次洗牌到下一次洗牌都保持完整不變。
獨立測試針對八個種子稽核了精確的可重現性,確認每一種版面仍然包含五個獨一無二的來源 ID、五個獨一無二的目標 ID,以及一條通往 1,000 分的完整路徑。預設版面的 ID 會保持可見,讓你隨時知道自己是從哪一個起始位置開始的,而同一套稽核邏輯,也證明了這些 ID 的任何一種可到達排列,最終都會結束。Restart 會把目前的版面重設回沒有任何配對、沒有選取狀態、沒有分數,也沒有任何失誤的狀態——它不會執行 Shuffle。如果想產生一個全新、尚未玩過的版面,請改選 Shuffle。
無障礙、控制方式,與本機端處理
Shape Matching Game 中的每一次互動,都在瀏覽器本機端執行。這裡沒有帳號、沒有上傳、沒有相機存取、沒有個人圖片、沒有 API 呼叫、沒有 AI 分類步驟,也沒有為了這個遊戲而新增任何執行環境相依項目。這些圖形都是抽象的,並不代表任何特定的兒童發展、視力、動作、教育、就業,或認知評估。分數只會記錄這公開的五組配對的完成狀態,而最佳分數只會儲存在裝置的本機端,不會同步到伺服器。
這個共用的遊戲外殼,提供了 Restart、最佳分數儲存、狀態顯示、螢幕上的鍵盤操作說明,以及一個可以在遊戲期間隨時啟動的 Boss Key。觸控玩家可以依靠指標驅動的命中測試,鍵盤玩家可以只靠 1 到 5,以及 6 到 0 完成整輪遊戲,而點擊玩家則可以在任何支援指標的裝置上,使用這個兩步驟流程。如果你喜歡圍繞著一對一「圖形對剪影」邏輯建構的確定性單頁解謎遊戲,Shape Matching Game 很自然地能跟 Shadow Matching Game 搭配在一起玩,在那個遊戲中,同樣的一件物品對一個剪影的對應方式,套用在五個不同的原創物件上,同樣是一個經過稽核、最終能拿到 1,000 分的遊戲。
如果你正在權衡各種選項,Angle Launch Physics Game: Hit 5 Targets for 1,000 Points 有詳細說明。
如果你正在權衡各種選項,3D Memory Game: Track One Point Across Five Rounds 有詳細說明。