2011年3月16日星期三

包剪揼

像我等走在時代末端的老式人,知道有這個電腦包剪捶網頁的時候,大概許多人已經玩過。遊戲難度分兩級,新手級的 AI 會根據你的習慣制訂決策,老手級的 AI 會依據它過往二十萬次對局歷史來砲製你。我剛剛試完新手級(如圖),既知它以你的習慣來作判斷,只要逆向思考,要勝出並不困難,但由於不清楚 AI 的詳細算則,要完全壓制對方就沒那麼容易了。以下是圖中的對局歷史,立此存照。

1) rock - rock
2) rock - scissors
3) scissors - paper
4) paper - scissors
5) paper - rock
6) rock - scissors
7) paper - rock
8) scissors - paper
9) rock - scissors
10) paper - rock
11) paper - rock
12) scissors - paper
13) scissors - paper
14) paper - scissors
15) rock - scissors
16) rock - scissors
17) rock - rock
18) paper - rock
19) scissors - rock
20) scissors - paper

後話:喔,原來凡玩夠五局,就可以叫電腦披露它以後每步會出甚麼,和解釋為何要這樣出(見圖中右上角藍色部份 "See what the computer is thinking")。現在既知其詳細算則,那麼毋須叫它披露每一步,也可以輕易得到完全勝利:


又後話:老手級比新手級難得多,要贏或者打和並不困難,但要拉開距離就有點麻煩。按 AI 的解說,它是以對方在過去四次對局的記錄作為一個 hash key (即總共有 38=6561 個 keys),去尋找人類玩家於二十萬次對局中最可能出的招數。理論上,由於這是個 deterministic algorithm,因此只要集齊 6561 種情況下對方的決策,就能必勝。然而這太費時失事。不知讀者有沒有簡單而有效的對策?

剛完成四十次老手級對局;結果陷入苦戰,無法拉開差距

沒有留言: