剛接觸棋類游戲程序編寫的朋友,往往比較迷惑,不知從何下手。
本文總結了棋類游戲的主程序流程、計算機走子策略、打分方式(以井字棋、黑白棋、五子棋為例),未使用minimax算法,比較簡單,適合剛接觸的朋友。特記錄如下:
作者:hhh5460
本文地址:https://www.cnblogs.com/hhh5460/p/10114236.html
一、主程序流程
所有雙人對戰棋類游戲在人機模式下的主程序流程幾乎雷同。
流程:
1.初始化棋盤
2.確定玩家,執黑先走
3.進入循環
4.打印棋盤、提示走子、(顯示得分?)
5.思考走法、放棄終止
6.落子、(吃子?、翻棋?)
7.判斷局面、是否終止、(是否輪換?)
8.切換棋手
9.游戲結束,返回信息
二、計算機走子策略
1.對所有合法的走子位置“打分”
2.取分值最高的走子位置
3.再取行最小的,若行相等,再取列最小的
三、“打分”方式
注意:同一個點位,雙方的棋型分都要加上!!
1.井字棋
棋型分值:
三連 100
活二 10
活一 1
2.黑白棋
翻了對方棋子的數目、或者翻了對方棋子的權重之和
3.五子棋
棋型分值:
0.活五 +100000
1.死五 +100000
2.活四 +10000
3.死四 +1000
4.活三 +1000
5.死三 +100
6.活二 +100
7.死二 +10
8.活一 +10
9.死一 +2
特別說明:
10.跳連 兩邊棋型分相加 + 上一級分值的20% ?商榷
四、確定棋型
方法是,從當前落子位置向周圍八個方向搜索。
注意,黑白棋八個方向是獨立考慮的,而井字棋與五子棋八個方向的相反方向要放在一起考慮。
五、棋力分析
這種按照最高得分走棋的策略,就是我們下棋時常說的:貪吃,即貪婪模式。棋力不會太高,屬於入門水平
六、代碼
(未公布)