Meowdoku 開局技巧:先掃區域,不是先掃列
一個全新的 Meowdoku 棋盤,看起來就是一整片顏色,上面放著一隻貓。大多數玩家會先一列一列地看,因為幾乎所有邏輯謎題都是這樣訓練你的。但在每個難度四百個棋盤上測量後發現,這其實是三種掃描方式裡最差的一種——而且前兩三隻貓,根本不需要掃描。
兩三個答案其實早就在棋盤上了
在你放下任何一隻貓之前,Meowdoku 棋盤已經先告訴你一些答案了。其中一個是起始貓,棋盤載入時就已經畫在上面,而且鎖定不能移動,這樣不小心點到也不會失去這個起步優勢。另外幾個,則是只有一格的區域。
只有一格的區域,就是一種恰好占了一格的顏色。每個區域都恰好要放一隻貓,所以那一格就是貓,完全不用想。沒有任何棋盤會少於一個這種區域;8×8 以上通常會有兩個,而極難難度是唯一刻意收回一個的難度,它的 10×10 棋盤只用一個一格區域,而不是兩個。
這代表在簡單、普通和極難難度下,你在什麼都還沒想之前,就已經有兩隻免費的貓;困難難度則有三隻。每次都先把它們收下來。開局接下來的重點,就是這些貓能排除掉什麼。
這些第一批貓咪已經殺掉了什麼
一隻貓會排除掉它整個列、整個欄、整個區域,以及緊貼著它的八個格子。這些範圍重疊得很多,但加總起來仍然是棋盤的大部分:光靠開局,困難 9×9 棋盤上就有 60% 的格子不合法,簡單難度則是 67%。
這種記帳工作,值得交給遊戲自己做。自動打叉按鈕,會用遊戲拒絕不合法移動時完全相同的檢查,把每一隻已放置貓咪排除掉的格子都打上叉——所以自動打叉的格子,絕對不會是你原本用得到的格子。開著它,你看到的就是剩下的形狀,而不用每次抬頭都自己重新推導一次。
剩下的部分才是有趣的地方。在困難難度棋盤上,開局結束後只剩略多於三分之一的格子還開放,分散在六個區域、六列和六欄裡。開局唯一要決定的問題,就是這三者裡先掃哪一個。
掃區域,不是掃列和欄
Meowdoku 最基本的推論,就是數獨教的那一招:找一條只剩一個合法格子的線,那一格就是貓。Meowdoku 給了你三種線——列、欄,還有顏色區域,而閱讀習慣讓你照這個順序去掃。
但在這套規則裡,這個順序剛好是反過來的。在每個難度各測量四百個新產生的棋盤後,以下是開局剛結束那一刻,各種線恰好只剩一個合法格子的頻率:
| 棋盤 | 免費貓咪 | 已不合法的格子 | 只剩一個候選的未解區域 | 只剩一個候選的未解列 |
|---|---|---|---|---|
| 簡單 5×5 | 2 | 67% | 34% | 24% |
| 普通 7×7 | 2 | 55% | 14% | 1.8% |
| 困難 9×9 | 3 | 60% | 12% | 0.7% |
| 極難 10×10 | 2 | 42% | 7% | 0.1% |
在困難難度棋盤上,一個區域比一列多出十八倍的機會直接送你一隻貓。在極難難度,這個階段的列和欄基本上什麼都給不了,所有能找到的推論全都來自區域。只有在 5×5 棋盤上,這三種視角才真正勢均力敵,這正是為什麼在簡單難度養成的習慣,會在困難難度誤導你。
平均值一樣,但分散程度差了三倍
原因純粹是算術問題,跟貓咪本身沒什麼特別關係,但值得跟著推導一次,因為它也告訴你這個建議什麼時候會失效。
三種掃描看的是同一批格子。困難難度棋盤在開局之後,有六個未解列、六個未解欄和六個未解區域,而每一個還合法的格子,剛好各自屬於這三者中的其中一個。所以每一種未解線上,平均候選格數是完全一樣的:4.87。單看平均值沒辦法區分它們。
但分散程度可以。每一列都是九格寬,每一欄都是九格高,所以它們的候選數會緊緊聚在這個平均值附近——標準差只有 1.1。區域則沒有固定大小;在困難難度棋盤上,區域大小從一格到大約十六格都有,候選數的標準差是 2.9,在同樣的平均值下,分散程度幾乎是三倍寬。
被逼出的貓咪,代表一條線剛好落到只剩一個候選——這是一種「尾端事件」,而分布越寬,落到尾端的機率就越高。列和欄並不是比較難看懂,它們只是太整齊,很難掉到分布的尾端。
先掃最小的區域
在區域掃描裡有一個明顯的順序,而且這個順序禁得起測量。當一個區域在開局剛結束就被逼出貓咪時,在困難難度棋盤上,有 61% 的機率它就是當時未解區域裡最小的那個,平均排名是六個未解區域裡的第 1.7 小。簡單、普通和極難難度也都落在差不多的位置:大約 60%,排名 1.5 到 1.6。
所以用肉眼把未解區域從小到大排一次,照這個順序一個一個檢查。這個推論通常就藏在你檢查的第一或第二個裡,而你也會直接跳過那些十二格、十六格的大區域,反正它們這麼早幾乎不會準備好。
這個順序並不是棋盤產生方式造成的巧合。一個小區域本身就很緊湊,所以附近隨便一次放置,就可能同時透過列、欄和對角接觸把它清空。一列九格橫跨整個棋盤,沒有任何一隻貓能一次靠近它的大部分。
免費的貓咪到底值多少
起始貓看起來只是個小小的禮貌。其實不是。以下是棋盤光靠三種唯一候選掃描,反覆執行到都掃不出東西為止,能走多遠——先是有起始貓的情況,接著是同一批棋盤但拿掉起始貓的情況。
| 棋盤 | 光靠消去法放置的貓咪數 | 能解完的棋盤比例 | 拿掉起始貓後的相同數字 |
|---|---|---|---|
| 簡單 5×5 | 4.8/5 | 93% | 38% |
| 普通 7×7 | 4.3/7 | 39% | 7% |
| 困難 9×9 | 5.3/9 | 28% | 8% |
| 極難 10×10 | 3.4/10 | 6% | 1% |
在簡單難度,起始貓的差別,決定了一個棋盤是十次裡有九次會自己解開,還是大概只有三分之一的機率。在普通難度,這個差距超過五倍。五隻或七隻貓裡的這一隻,做的可不只是一隻貓份量的工作。
而且這個效果會複利放大。起始貓排除掉的每一樣東西,都會讓其他某條線變短,而線越短,就越接近只剩一個候選。這也是為什麼遊戲從來不會把起始貓放在一格區域裡:把它用在一個反正你本來就會拿到的格子上,會浪費掉整個連鎖效應。
開局能帶你走到哪裡就沒了
那張表格中間那一欄,是這篇文章最誠實的部分。在困難 9×9 棋盤上,唯一候選消去法大概能放九隻貓裡的五隻,然後就停下來。在極難難度,則是十隻裡的三隻,然後停下來。
這是這個技巧本身的上限,不是你的上限。當這三種掃描都安靜下來時,棋盤依然只有一個解,而且依然完全可以確定——只是需要換一種推理方式。比如某個區域剩下的格子全部擠在同一列裡,所以其他區域都不能用那一列;或者兩個區域被侷限在同樣的兩欄裡,所以那兩欄裡其他所有格子都不合法。這些各自都值得寫成獨立的文章。
開局真正買到的,是一個讓那些更難的推理有東西可以下手的棋盤。九隻貓的棋盤先放好五隻,不是卡住,而是接下來的部分變得可以找出來的那個位置。
按順序整理的開局流程
五個步驟,前四個一旦養成習慣,大概十五秒就能做完:
- 先收下免費的貓咪。 起始貓已經放好了。每一個只占一格的區域,再加一隻。
- 打開自動打叉。 讓遊戲幫你打叉那些貓已經排除掉的格子。它用的檢查,跟擋下不合法移動時完全一樣,所以絕不會打掉一個你其實用得到的格子。
- 掃描區域,從最小的開始。 任何只剩一格開放的區域就是貓。幾乎所有早期的推論都從這裡來。
- 每放一隻貓,就重新掃一次。 一隻貓常常會連帶逼出接下來兩隻,只掃一次棋盤,會漏掉大半這種連鎖反應。
- 這之後才輪到行和欄。 等區域安靜下來後,值得掃一次。在 9×9 或 10×10 上,通常要等到棋盤進度相當靠後,它們才會開始有所發現。
這些數字是怎麼測量出來的
這裡的每一個數字,都來自遊戲本身的產生器——也就是實際用來產生你玩的棋盤的同一套程式碼,在四個難度下各跑了四百個新棋盤。沒有任何一個是估計值,也沒有一個來自人類實際遊玩的樣本。
「開局」指的就是起始貓加上每一個一格區域,沒有別的。「消去法」指的只有上面描述的那三種唯一候選掃描,重複執行到都掃不出東西為止。如果玩家用了更進階的技巧,能走得比表格顯示的更遠,這正是「開局能帶你走到哪裡就沒了」那一節在講的事。
這些數字描述的是這個產生器目前產生的棋盤,而這個產生器過去也曾經被調整過。所以這篇文章附帶的測試套件,每次執行都會從新產生的棋盤重新推導這個核心比較:如果哪天區域不再比列更常產生推論,這個頁面就會直接建置失敗。
在真正的棋盤上試試這套開局
開一個困難 9×9 棋盤,收下三隻免費貓咪,打開自動打叉,然後從最小的區域開始往上掃。數數看在掃描安靜下來之前,你能走到第幾隻——大約五隻,正是測量結果告訴你應該落在的位置。
棋盤都是在你的瀏覽器裡生成的,你玩的內容不會被傳送到任何地方。