顏色代碼測驗,是一種瀏覽器挑戰,要求你觀察畫面上顯示的色塊,並輸入與之相符的 RGB 或 HEX 數值,接著系統會依照紅、綠、藍每個色版與目標值的接近程度來評分。在RGB Guessing Game中,這項任務恰好進行五個回合,每次成功配對色塊值 200 分,全部完美完成則恰好值 1,000 分。每個回合都會把目前的顏色繪製到一個 Canvas 元素中,因此頁面文字、ARIA 標籤與行內樣式都不會直接洩露答案;你只需要觀察色塊,決定要輸入三個 0 到 255 之間的十進位色版數值,還是輸入像 #AABBCC 這樣的 CSS HEX 色碼,然後送出你的估計值。遊戲接著會回傳三個色版各自的絕對誤差、其中最大的誤差,以及三者的總和。只有當每個色版的誤差都在 12 以內,且三個誤差加總在 24 以內時,這次猜測才算過關;這兩個門檻都是含邊界值,且必須同時成立。連續出現兩次不同的錯誤顏色後,這個回合會鎖定,直到你按下「Restart」為止;成功完成第五個回合,就代表整輪遊戲結束。

color code quiz
color code quiz

「顏色代碼測驗」在瀏覽器遊戲中代表什麼

顏色代碼測驗有好幾種形式。有些會顯示一組十六進位字串,要求你說出對應的顏色名稱。有些則會顯示一個色塊,要求你重現它的色碼。RGB Guessing Game 實作的瀏覽器版本,屬於第二種類型,它把辨識顏色當成一道數值估計問題,而不是詞彙記憶測驗。系統不會問你哪個顏色是「森林綠」或「天藍色」;而是要求你輸入三個數字,當這三個數字重新被解讀成紅光、綠光與藍光時,能呈現出眼前這個色塊。

這樣的設計把整個測驗變成一項量測練習。每個回合都是一次全新的校準:目標顏色隱藏在 Canvas 的像素緩衝區中,你的估計值會被解析成一組正規化的整數,唯一公開的回饋,就是每個色版的絕對誤差。這讓任何看得懂色塊、會操作數字欄位的人都能參與這款遊戲,不需要具備顏色名稱的詞彙量,也不需要學習滑桿的操作方式。如果你在網路上其他地方用過十進位的 rgb() 記法,或 CSS 的 #RGB 簡寫,這裡的輸入規則對你來說會很熟悉;如果沒用過,本文接下來會逐一說明。

RGB Guessing Game 的回合是如何運作的

每個回合都遵循相同的固定流程。這裡沒有時間壓力,也沒有漸進式的難度;回合之間唯一會變化的,只有目前顯示的色塊,而五個成功回合,每次都會產生相同的 1,000 分。

  1. 觀察目前 Canvas 顯示的色塊,決定要輸入十進位的 RGB 色版數值,還是輸入 CSS HEX 字串。
  2. 輸入三個介於 0 到 255 之間的整數,或是輸入格式為 #RGB 或 #RRGGBB 的十六進位字串,須包含開頭的井字號,數字可以是大寫或小寫的任意組合。
  3. 按下「Submit」動作,或在表單中按下 Enter 鍵,即可用你的估計值對照隱藏的目標顏色。
  4. 閱讀回傳的回饋內容:每個色版的絕對誤差、其中最大的單一誤差,以及三者加總後的誤差。
  5. 如果有任何一個誤差超過 12,或總誤差超過 24,就用更精準的估計值重複步驟 2 到 4,直到猜測過關、獲得 200 分,並解鎖下一個回合。
  6. 五個回合全部過關後,遊戲會進入終局的完成狀態,最終分數恰好是 1,000 分。

解讀每個色版的誤差回饋

每次提交後的回饋,刻意採用數值形式呈現。遊戲會回報三個絕對誤差,定義為 |目標紅色 - 猜測紅色|、|目標綠色 - 猜測綠色|,以及 |目標藍色 - 猜測藍色|。它也會顯示這三個數值中最大的一個,以及三者的總和。假設隱藏的目標值是 (200, 150, 100),而你輸入了 (212, 158, 100)。紅色誤差是 12,綠色誤差是 8,藍色誤差是 0,最大誤差是 12,總誤差是 20。兩個門檻都成立:每個色版的誤差都不超過 12,三個誤差的總和也不超過 24,因此這次猜測過關,獲得 200 分。

同樣的目標值,如果猜測是 (212, 158, 90),紅色誤差是 12,綠色誤差是 8,藍色誤差則是 10。最大誤差仍然是 12,但總誤差是 30,即使沒有任何單一色版的誤差超過 12,總誤差仍然超過了 24 的上限。這次猜測會失敗,因為雙重門檻規則要求兩個條件必須同時成立;一個大的失誤,無法靠另外兩個精準色版來掩蓋。同樣的邏輯,也能防止相反的失敗情況——三個各自都不大、但都不是零的誤差,累加起來超過 24。

RGB 與 HEX 輸入:相同分數,相同門檻

RGB Guessing Game 接受兩種等效的表示法,並在解析後把它們當作同一種輸入來處理。十進位模式要求輸入三個位於 [0, 255] 閉區間內的十進位整數。HEX 模式要求輸入一個以 # 開頭、後接三位或六位十六進位數字的字串。三位數的寫法會把每個數字重複一次,因此 #ABC 會展開成 #AABBCC;六位數的寫法則照原樣使用。十六進位數字不區分大小寫,這符合解析器所遵循的 W3C CSS Color Module Level 4 十六進位記法規則,MDN's hex-color reference同樣確認了這種三位與六位簡寫的行為。

格式接受的語法範例色版範圍
十進位 RGB三個以逗號分隔的色版整數200, 150, 1000 到 255(含邊界)
短版 HEX# 後接三位十六進位數字#C86 → #CC8866每個數字 0-F,會重複一次
完整版 HEX# 後接六位十六進位數字#C89664每兩位一組,範圍 00-FF

這兩種格式,都會在計分之前、以及重複嘗試去重邏輯執行之前,被轉換成同一組紅、綠、藍整數值。這帶來兩個實際的效果。第一,你可以隨時在 RGB 與 HEX 之間切換,而不會失去目前的進度,這在某個色塊用其中一種記法表達比較容易時很有用。第二,如果你在一個回合中先用 200, 150, 100 猜錯一次,接著又用 #C89664 重新輸入同一個顏色,第二次的嘗試並不會消耗你的第二次機會,因為正規化後的數值組合是完全相同的。只有真正不同的顏色,才會被算作第二次不同的失誤。

計分、補救機會與卡關

成功過關的色塊,恰好獲得 200 分,而這款遊戲恰好有五個固定回合。因此五個回合全部成功,會產生確定性的最終分數 1,000 分,沒有任何額外獎勵、扣分,或因為「接近但沒中」而給的部分分數。沒有過關的回合,會保留一次補救機會。這次補救機會,就是第二次不同的錯誤顏色。如果你輸入一個顏色、看到回饋後,又輸入了同一個顏色——即使是從十進位 RGB 切換成對應的 HEX 形式——第二次提交仍然代表同一組正規化數值,不會被算作一次不同的失誤。真正不同的第二次錯誤顏色,才會讓這個回合進入卡關狀態,直到你按下「Restart」為止,而該回合的分數會維持在零。

格式錯誤、缺少色版數值、小數、負數,以及任何超過 255 的輸入,都會被當成解析失敗而拒絕,而不是被計為一次失誤,因此它們不會消耗你的補救機會,也不會改變分數。一旦某個回合完成或進入卡關狀態,之後的任何編輯、模式切換與提交,都會直接返回、不會改變業務狀態,這讓終局條件維持原子性且可預期。

鍵盤、行動裝置與老闆遮蓋畫面控制

這個介面採用原生的表單版面配置:Tab 鍵能在格式按鈕、輸入欄位與「Submit」動作之間移動焦點,在表單內按下 Enter 鍵則會送出目前的估計值。每個輸入項目都維持適合行動裝置觸控的高度,版面在窄螢幕上會收合成單欄顯示。所有遊戲狀態——目前回合、累計分數、最佳分數,以及卡關狀態——都只留在瀏覽器中。這裡沒有上傳、沒有帳號、沒有模型呼叫,也沒有遠端顏色服務;如果你想拿自己辨色的風格,跟一款以「調整」為基礎的挑戰做比較,Color Mixing Game's RGB and CMY walkthrough介紹的正是那種相鄰的格式。當共用的老闆遮蓋畫面顯示出來時,輸入編輯、模式切換、提交與「Restart」都會直接返回,不會改變本機狀態或計分狀態,因此這個遮蓋畫面是真正的防護機制,而不只是裝飾性的休息畫面。

欲進一步了解,請參閱Play Rock Paper Scissors Online: Win 1,000 Points