不會,在 Check 上意外雙擊並不會結束「數字著色」。檢查器會雜湊完整的 36 位數棋盤簽章,只有當該簽章與上次記錄的不同時,才會計入一次失誤,因此在未變更的錯誤棋盤上再次按下 Check 只是安全的無效操作,並不會消耗第二次失誤。只有當玩家畫出第二個、不同的錯誤完整排列,並在已變更的格子上驗證時,一局才會陷入死局。同樣的保護也延伸到鍵盤,因為重複的 Enter 按鍵事件會刻意被忽略,所以按住 Enter 鍵時並不會在格子之間快速觸發,也不會送出意外的檢查。要結束遊戲的雙失誤規則,仍然需要兩次分開的、刻意的錯誤提交,而非一次意外觸發的錯誤。「數字著色」只會為那個唯一正確的 6x6 火箭頒發正好 1,000 分,無論檢查是如何觸發的;任何結束的時機,都只會在你真正變更棋盤、畫出新的錯誤完整排列,並透過 Check picture 或 Enter 提交之後才會到來。

Check Picture 規則如何處理意外雙擊
Check picture 按鈕(或 Enter 鍵)並不像碼錶計算點擊次數那樣單純計算「點擊次數」。相反地,運行器會把每個完整畫好的棋盤視為一個 36 位數的簽章,並只記住最近一次被計入的錯誤簽章。第一次提交一個完整畫好的錯誤棋盤時,該簽章會被儲存為「上次計入的錯誤排列」。在完全相同的棋盤上再次按下 Check,會產生一模一樣的 36 位數簽章,因此運行器會辨識出這個重複,不會再加入第二次失誤。要造成死局,需要一個與第一個簽章真正不同的第二個簽章,而這只有在至少一個格子變更後才會發生。
這代表意外雙擊、意外的 Enter 按鍵,甚至是同一個未變更棋盤上快速的鍵盤自動重複,都無法單獨結束你的這一局。要結束遊戲,你必須刻意編輯一個格子、保留至少一個錯誤的格子,並提交一個完整畫好的棋盤,且其簽章與你已經計入過的不同。雙失誤契約仍然有效,但它是在「不同的錯誤排列」上強制執行,而非在按鈕按壓次數上。
當這一局陷入死局,或當你完成棋盤時,所有繪製、清除、調色盤選擇、游標移動,以及額外的檢查都會凍結。Restart 是刻意的離開方式,它會重設為全新的空白 6x6 棋盤,並預設選取 group 1,失誤數為零,分數為零。如果你想在乾淨的 Restart 之後繼續玩同一個火箭,題板永遠會還原為同一個已公開的 36 位數提示格線:111311、113331、113431、123332、123332,以及 221122,串在一起讀為 111311113331113431123332123332221122。
如何安全地繪製 6x6 火箭
- 閱讀每個提示並對應到編號調色盤:1 Background、2 Flame、3 Hull,或 4 Window。每個提示都是介於 1 到 4 之間的數字,而調色盤按鈕會同時顯示該數字與語意名稱。
- 透過點擊或輕觸選擇調色盤按鈕,或直接按下數字鍵 1、2、3、4。目前選取的筆刷會顯示在狀態列上,並在所屬的調色盤按鈕上以外框標示。
- 點擊或輕觸格子以套用目前的筆刷。你也可以用方向鍵移動游標(游標會在 6x6 棋盤邊緣被夾住),然後按下 1 到 4 為選取的格子塗色。按下 Space 會重複使用目前的筆刷。
- 使用 Delete 或 Backspace,或按右鍵,清除不小心塗錯的格子。再次塗一個格子會覆蓋先前的群組,因此在提交 Check picture 之前,錯誤的選擇永遠可以修正。
- 塗滿全部 36 個格子。未塗的格子在簽章中會算作 0,因此未完成的棋盤只會回傳未完成的訊息,不會加入失誤,你可以繼續填色。
- 按下 Check picture,或按下 Enter,以驗證棋盤。檢查器會比對每個格子與獨立的 36 位數 oracle,並回報三種結果之一。
- 如果你看到未完成的訊息,就繼續塗色。如果你看到完成但錯誤的嘗試,忽略它並繼續編輯。只有第二個不同的錯誤排列會使這一局陷入死局,而只有完全正確的棋盤才能獲得 1,000 分。
按下 Check 的三種結果
這三種結果共享同一個輸入(按下 Check picture 或 Enter),但會觸發不同的效果。第一種會在至少還有一格未塗時觸發。第二種會在棋盤已塗滿、且 36 位數簽章與獨立 oracle 不同時觸發,這也包含意外雙擊所走的路徑:第一個不同的錯誤排列會記錄一次失誤並保持可編輯,而只有第二個不同的錯誤排列才會使這一局陷入死局。第三種只有在每個格子都與獨立的 36 位數 oracle 完全相符時才會觸發。
| 結果 | 觸發時機 | 對這一局的效果 |
|---|---|---|
| Incomplete | 至少有一格未塗(在簽章中會出現 0) | 不加入失誤;棋盤保持可編輯;繼續塗色 |
| Completed wrong attempt | 全部 36 格都已塗色,但至少有一個群組與其提示不同(簽章與獨立 oracle 不符) | 第一個不同的錯誤排列會記錄一次失誤,並保持可編輯;在同一個未變更的錯誤棋盤上重新檢查不會再加入失誤;第二個不同的錯誤排列會使這一局陷入死局 |
| 一個塗滿的錯誤棋盤,其簽章與先前已計入的錯誤棋盤不同 | 第一次發生時記錄一次失誤;第二個不同的錯誤簽章會使這一局陷入死局 | |
| Completed correct | 全部 36 格都已塗色,且每格都與獨立 oracle 相符 | 這一局以正好 1,000 分結束;進一步的輸入會凍結,直到 Restart |
Oracle 的群組計數同時也確認了題板的完整性。已公開的棋盤包含 15 個 Background 格子(群組 1)、8 個 Flame 格子(群組 2)、12 個 Hull 格子(群組 3),以及 1 個 Window 格子(群組 4),而 15 + 8 + 12 + 1 = 36,與 6x6 棋盤完全吻合。解答中沒有任何未知或超出範圍的值,且每個調色盤群組都是必要的:測試套件會依序替換每個完整群組,並證明那些近似解答的棋盤都無法通過。
解讀調色盤按鈕與群組字母
檢查器並不依賴顏色辨識,調色盤按鈕的設計讓僅憑文字也能解開棋盤。每個格子在塗色後仍會顯示其提示數字,而一個小字母會標示其預定群組:B 代表 Background、F 代表 Flame、H 代表 Hull,W 代表 Window。調色盤控制項會同時顯示數字 ID 與語意名稱,而螢幕閱讀器的標籤會為每個格子播報其列、欄、提示、語意群組,以及目前塗上的數字。
這個冗餘設計對於雙擊的問題很重要,因為它消除了詮釋實際色調的需要。如果你剛好混淆了兩個調色盤顏色,提示數字、群組字母,以及狀態列上的筆刷仍會告訴你每個格子應該屬於哪個群組,因此唯一能送出錯誤棋盤的方式,就是在格子上實際塗錯群組。這也是為什麼 Check 上的意外雙擊無法偷偷送進一次失誤:簽章只會在格子內容變更時改變,而在沒有編輯任何格子的情況下點擊 Check,簽章會保持不變。
你也可以只依賴棋盤本身來辨識。固定的 6x6 火箭有六列,以 row-major 順序讀為 111311、113331、113431、123332、123332,以及 221122,因此每個提示的正確答案都由其位置決定。唯一的 Window 格子位於一個固定的 row-major 位置,Hull 格子佔據 12 個固定位置,Flame 格子佔據 8 個位置,其餘 15 個由 Background 格子填滿。
鍵盤重複行為如何阻止意外提交
「數字著色」的鍵盤路徑與指標路徑採用了相同的防意外邏輯。方向鍵會把游標夾在 6x6 棋盤內,因此長按也不會逃出棋盤。按下 1、2、3 或 4 會為選取的格子塗色,並同時將該群組選為新的筆刷,而 Space 會重複目前的筆刷。Delete、Backspace,以及右鍵會清除選取的格子。Enter 會送出 Check picture。
對抗意外檢查的關鍵保護在於 keydown 篩選器。在按住按鍵期間,同一個按鍵的重複 keydown 事件會被刻意忽略,因此自動重複無法連續觸發多次 Enter 檢查,而你按住 Enter 鍵時也無法在放開之前多次提交棋盤。結合基於簽章的計數規則,這代表即使是把手靠在鍵盤上的玩家,也無法透過意外輸入累積多餘的失誤。結束這一局的雙失誤規則仍然適用,但兩次失誤都必須來自真正不同的錯誤塗色。
為了徹底安心,每次重新遊玩火箭時,都會從同一個已公開的空白提示格線開始,而老闆鍵、Restart 按鈕,以及最高分都位於共用的遊戲外殼中。在外殼的時限內連按兩次 Escape 會叫出試算表風格的封面,再按兩次會回到遊戲。塗色流程、檢查流程,以及死局流程中的任何動作,都無法被意外觸發,因此唯一刻意的離開方式就是 Restart 按鈕,以及一塊價值 1,000 分的正確解答棋盤。
如需更深入的說明,請參閱《Color Gradient Puzzle:使用鍵盤遊玩而無需拖曳》。
如需更深入的說明,請參閱《Sudoku with Colors:9 個代幣、完整規則、1,000 分》。