python棋類游戲編寫入門


剛接觸棋類游戲程序編寫的朋友,往往比較迷惑,不知從何下手。

本文總結了棋類游戲的主程序流程、計算機走子策略、打分方式(以井字棋、黑白棋、五子棋為例),未使用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% ?商榷

 

 四、確定棋型

方法是,從當前落子位置向周圍八個方向搜索。

注意,黑白棋八個方向是獨立考慮的,而井字棋與五子棋八個方向的相反方向要放在一起考慮。

 

五、棋力分析

這種按照最高得分走棋的策略,就是我們下棋時常說的:貪吃,即貪婪模式。棋力不會太高,屬於入門水平

 

六、代碼

(未公布)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM