2018年7月8日 星期日

1A2B 猜數字遊戲

我很喜歡 1A2B 這個遊戲,想要寫一個小程式讓電腦出題,平常無聊時就可以猜電腦出的數字。

1A2B 遊戲規則

1A2B 這個遊戲在國外叫 mastermind 或 cows and bulls,玩法是選個 4 位數的數字,這 4 位數中的數字不能重覆,比方說 1231 這樣是不行的,因為 1 重覆使用了。另外,我自己玩的時候最高位數不能為 0,比方說 0123 這樣是不行的,但我看其他人在玩的時候最高位數還是可以為 0。

假設我選的數字是 1234,對手猜 9801,那對手猜中 1 這個數字,但是位子不對,這樣的情況稱為 B。因為對手沒有猜中其他數字,所以總計起來就是 1 個 B 而已,所以我會回報對手 『0A1B』,告訴他:『你猜中了一個數字,但這數字不在正確的位子上。』

如果對手猜 1987,那麼 1 被它猜中了,而且位子也在正確的地方,這樣的情況稱為 A, 因為對手沒有猜中其他數字,所以總計起來就是 1 個 A 而已,所以我會回報 『1A0B』,告訴他:『你猜中了一個數字,而且這數字在正確的位子。』

下次對手猜 4201,4 這個數字猜中了,但位子不對,1 個 B;2 這個數字猜中了,而且位子也正確,1 個 A;1 這個數字猜中了,但位子不對,1 個 B,總計就是 1 個 A 還有 2 個 B,所以我回報給對手:『1A2B』,遊戲的目標就是要達到 4A -- 4 位數都猜中,而且數字都在正確的位置上。