2012-12-01 44 views
2

我做了一個tic tac腳趾A.I.鑑於每個董事會的國家,我的A.I.將返回1個確切位置移動。 (即使移動同樣正確,它每次都選擇相同的一個,它不會隨機選擇一個)如何測試我的井字A.I.是完美的?

我也製作了一個函數,可以循環使用A.I.所做的所有可能的播放。

所以這是一個遞歸函數,讓A.I.爲一個給定的棋盤做出一個動作,然後讓其他棋手做出一切可能的動作,並在每個可能的棋步中用一塊新棋盤自行調用遞歸功能。

我這樣做,當A.I先走時,另一個先走......並將它們加在一起。我最終獲得了418個可能的勝利和115個可能的關係,並有0個可能的失敗。

但現在我的問題是,我如何最大限度地贏得勝利?我需要比較這個統計數據,但我無法弄清楚要比較的東西。

+3

讓它發揮自己。 –

+0

@JakobBowyer:https://www.youtube.com/watch?v=NHWjlCaIrQo – hammar

+0

@hammar http://www.youtube.com/watch?v=6uVunn6Vux4 –

回答

5

您是否閱讀過關於維基百科的文章? link

終端的數量的位置

當考慮到板的唯一的狀態,並考慮到板對稱性(即旋轉和反射)後,僅存在138端子板的位置。假設X使第一移動每次:

  • 91個獨特位置通過(X)
  • 44獨特位置由(O)
  • 3個獨特位置被繪製贏得贏得

可能的遊戲數量

沒有考慮到對稱性,可能的遊戲數量可以通過一個精確的公式手工確定,從而導致255,168種可能的遊戲。假設X使得第一招每次:

  • 131184個成品遊戲由(X)
  • 77904成品遊戲被摘得(O)
  • 46,080完成的遊戲繪製

您可以生成從第一段138個端子板位置

ÿ Ø可以運行在隨機域足夠的測試和結果與統計數據從這裏link

Win in 5 moves 1440  0.6% 
Win in 6 moves 5328  2.1% 
Win in 7 moves 47952 18.8% 
Win in 8 moves 72576 28.4% 
Win in 9 moves 81792 32.1% 
Draw    46080 18.1%  
Total    255168 100.0% 
+0

你如何比較131,184勝418勝?你如何將這些統計數據與我的結果進行比較,這是我的問題。 – Thomas

+0

從第一段創建91 + 44 + 3 = 138個電路板設置。運行AI。比較贏/輸/計數。 – akaRem

+0

一個人如何製作138個棋盤佈局...... – Thomas

0

其實你可以蠻力遊戲比較,並證明,每一次有一個成功的策略,你的A.I。選擇正確的舉措。那麼,你可以證明,對於每個位置,你的A.I.選擇最大化獲勝策略的可能性,假設其他玩家隨機玩。沒有那麼多的可能性,所以你應該能夠消除所有這些可能性。

你也顯著通過假定其他玩家減少的可能性的空間實際上是稍微聰明,例如總是試圖阻止立即獲勝的舉動。

+0

255168遊戲。好。你有一些結果,f.e.勝率51%,損失40%,平局9%。是好還是壞? – akaRem

0

akaRem的答案的一個問題是,最佳球員不應該看起來像整體分佈。例如,我剛剛寫下的一個玩家贏得了大約90%的時間,這是針對隨機玩的人,並且有10%的時間與玩家聯繫在一起。如果您有兩名玩家相互隨機玩,您應該只能期待akaRem的統計數據匹配。兩名最佳球員總是會打平。

相關問題