1. 程式人生 > >[文件和原始碼分享]C++實現的基於α-β剪枝演算法的井字棋遊戲

[文件和原始碼分享]C++實現的基於α-β剪枝演算法的井字棋遊戲

“井字棋”遊戲(又叫“三子棋”),是一款十分經典的益智小遊戲,操作簡單,娛樂性強。兩個玩家,一個打圈(O),一個打叉(X),輪流在3乘3的格上打自己的符號,最先以橫、直、斜連成一線則為勝。

如果雙方都下得正確無誤,將得和局。這種遊戲實際上是由第一位玩家所控制,第一位玩家是攻,第二位玩家是守。

這種遊戲的變化簡單,常成為博弈論和賽局樹搜尋的教學例子。這個遊戲只有765個可能局面,26830個棋局。如果將對稱的棋局視作不同,則有255168個棋局。

將井字棋遊戲設計為人機對弈系統,分別用X代替人(玩家)的棋子,用O代替機(電腦)的棋子。玩家可以選擇自己或電腦先下(遊戲實際上是由先下的一方所控制),電腦一方是由程式選擇對自己最有利的棋局決定下一步,程式利用Minimax演算法結合α-β剪枝演算法實現電腦的走步。結局有三種情況:玩家贏,電腦贏或平局。

用一個3的井字格來顯示使用者與電腦下的介面,使用提示資訊要求使用者輸入資料。當用戶與計算機分出了勝負後,機器會顯示出比賽的結果,並由使用者選擇是否重玩遊戲。

 

 

 

參考博文和原始碼下載地址:

https://www.write-bug.com/article/1408.html