Mastermind攻略範例一(最簡單的遊戲設定)

Game Setting: No. of colours: 7; Start from: Trial 1; Length of code: 4; Hints contain error(s)?: No error; Order type: Fixed order; Colour repeated?: No repetition

謎底:1345


開始時我們可任意輸入4個數字。假設我們輸入0123,並得提示2(即猜對了2個數字)。以下為了方便追蹤我們的 推理過程,筆者製作了一個「推理追蹤表」,記載猜謎者在每一回合的輸入、所獲得的提示、所用到的新數字 以及在該回合用到的新數字中假設猜對的數字。在第一回合結束後我們得到下表:

回合輸入提示在本回合用到的新數字假設猜對的數字
1012320123-

接著我們進入第二回合。我們首先回顧第一回合的猜謎結果,由於我們在第一回合猜對了2個數字,我們可以 假設該2個數字為01。此外我們還需另加兩個新的數字45。輸入0145後,我們得提示為3。在第二回合結束後, 我們的「推理追蹤表」變成:

回合輸入提示在本回合用到的新數字假設猜對的數字
101232012301
20145345-

接著我們進入第三回合。我們首先回顧第二回合的猜謎結果,由於第二回合較第一回合增多了一個猜對的數字 ,我們假設這個猜對的數字為4。由於我們現時假設猜對了014,我們需要再添加一個新數字6。輸入0146後,我 們得提示為2。在第三回合結束後,我們的「推理追蹤表」變成:

回合輸入提示在本回合用到的新數字假設猜對的數字
101232012301
201453454
3014626-

接著我們進入第四回合。我們首先回顧第三回合的猜謎結果,由於在第三回合我們本來假設猜對了014,但所得 提示卻是2,這說明我們之前所作的假設有錯,所以我們必須返回去修改之前的假設。我們首先返回到第二回合 ,把「假設猜對的數字」改為5。這即是說,現在我們假設猜對了015。修改了之前的假設,我們又重新向前進 ,看看第三回合的情況。比較一下015與我們在第三回合所猜的0146,我們可得出以下結論:假如謎底真的包含 015,那麼我們在第三回合所猜的0146應至少猜中了2個數字,而事實上,第三回合的提示剛好是2。這即是說, 在第三回合用到的新數字6不在謎底之中。可是這麼一來,我們便沒有其他新數字可供使用(本局遊戲設定的顏 色數為7,分別用0,1...6代表),這說明我們之前所作的假設有錯,所以我們必須再次返回去修改之前的假設。

先回到第二回合。由於現時第二回合假設猜對的數字是5,這已是最後一個可能猜對的數字,無可更改,所以我 們再回到第一回合。在第一回合假設猜對的數字是01,這是可以修改的,我們就把它修改成02。接著我們又重 新向前進,首先前進到第二回合。比較一下02與我們在該回合所猜的0145,我們可以得出結論:假如謎底真的 包含02,那麼我們在第二回合所猜的0145應至少猜中了1個數字,而事實上,第二回合的提示是3,比我們預期 的多了兩個猜對的數字,所以這兩個數字必定是45。接著我們繼續前進至第三回合。比較一下0245與我們在該 回合所猜的0146,我們可以得出結論:假如謎底真的是0245,那麼我們在第三回合所猜的0146應猜中了2個數字 ,而事實上,第三回合的提示剛好是2,並不抵觸我們的假設。而且由於現時我們假設的謎底0245剛好包含4個 數字,無需再使用任何新數字,所以這個假設是合理的。接著我們就輸入0245,結果得提示2。在第四回合結束 後,我們的「推理追蹤表」變成:

回合輸入提示在本回合用到的新數字假設猜對的數字
101232012302
2014534545
3014626-
402452--

接著我們進入第五回合。我們首先回顧第四回合的猜謎結果,由於在第四回合我們本來假設猜對了0245,但所 得提示卻是2,這說明我們之前的假設有錯,所以我們又要回去修改之前的假設。先回到第三回合,由於在第三 回合沒有假設猜對的數字,所以我們再回到第二回合。由於現時第二回合假設猜對的數字是45,無可更改,所 以我們再回到第一回合,把第一回合假設猜對的數字修改成03。接著我們又重新向前進,首先前進到第二回合 。比較一下03與我們在該回合所猜的0145,我們可以得出結論:假如謎底真的包含03,那麼我們在第二回合所 猜的0145應至少猜中了1個數字,而事實上,第二回合的提示是3,比我們預期的多了兩個猜對的數字,所以這 兩個數字必定是45。接著我們繼續前進至第三回合。比較一下0345與我們在該回合所猜的0146,我們可以得出 結論:假如謎底真的是0345,那麼我們在第三回合所猜的0146應猜中了2個數字,而事實上,第三回合的提示剛 好是2,並不抵觸我們的假設。接著我們繼續前進至第四回合。比較一下0345與我們在該回合所猜的0245,我們 可以得出結論:假如謎底真的是0345,那麼我們在第四回合所猜的0245應猜中了3個數字,而事實上,第四回合 的提示是2,比我們預期的少了一個猜對的數字。這說明我們之前所作的假設有錯,所以我們必須再次返回去修 改之前的假設。

如前段所述,在第三、第二回合假設猜對的數字都無可更改,所以我們必須回到第一回合,把第一回合假設猜 對的數字修改成12。接著我們又重新前進到第二回合。比較一下12與0145,我們可以得出結論:假如謎底真的 包含12,那麼我們在第二回合應至少猜中了1個數字,而第二回合的提示是3,比我們預期的多了兩個猜對的數 字,所以這兩個數字必定是45。接著我們繼續前進至第三回合。比較一下1245與0146,我們可以得出結論:假 如謎底真的是1245,那麼我們在第三回合應猜中了2個數字,而第三回合的提示剛好是2,並不抵觸我們的假設 。接著我們又繼續前進至第四回合。比較一下1245與0245,我們可以得出結論:假如謎底真的是1245,那麼我 們在第四回合應猜中了3個數字,但第四回合的提示是2,與我們的假設相矛盾。這說明我們之前所作的假設有 錯,所以我們必須再次返回去修改之前的假設。

我們再次回到第一回合,把第一回合假設猜對的數字修改成13。接著我們又重新前進到第二回合。比較一下13 與0145,我們可以得出結論:假如謎底真的包含13,那麼我們在第二回合應至少猜中了1個數字,而第二回合的 提示是3,比我們預期的多了兩個猜對的數字,所以這兩個數字必定是45。接著我們繼續前進至第三回合。比較 一下1345與0146,我們可以得出結論:假如謎底真的是1345,那麼我們在第三回合應猜中了2個數字,而第三回 合的提示剛好是2,並不抵觸我們的假設。接著我們又繼續前進至第四回合。比較一下1345與0245,我們可以得 出結論:假如謎底真的是1345,那麼我們在第四回合應猜中了2個數字,而第四回合的提示剛好是2,並不抵觸 我們的假設。至此我們假設的1345與第一至第四回合的提示並不互相抵觸,而且剛好包含4個數字。接著我們就 輸入1345,結果我們猜中了謎底。在第五回合結束時,我們的「推理追蹤表」變成:

回合輸入提示在本回合用到的新數字假設猜對的數字
101232012313
2014534545
3014626-
402452--
51345WIN--

總括而言,筆者所介紹的Mastermind遊戲攻略就是作出假設和不斷因應提示修正假設的過程。我們的假設是層 層遞進的,根據每一回合的猜謎結果判斷在這一回合中有哪些新數字可能在謎底內。每當發現我們的假設有錯 時,我們便回去修改之前的假設。由於我們要避免在推理中有任何遺漏,我們每次都盡量少作改動,即我們力 求只返回上一回合,修改上一回合的假設;但如上一回合的假設無可更改,我們便只好再多後退一步,直至我 們找到可供修改的假設為止。在修改了之前的假設後,我們便又重新前進,檢查我們的新假設是否與下一回合 的猜謎結果相抵觸。若是,這說明我們的新假設仍然有錯,我們只好又返回去再作修改;若否,則我們繼續前 進,直至證實所有猜謎結果均不抵觸我們的新假設為止,然後我們便可作出新一回合的猜謎。由此可見,在猜 謎過程中,我們不斷來回重新檢視已有的猜謎結果,務求利用一切已有的線索,力求避免遺漏任何可能性。


連結至Mastermind Link Page