python棋类程序_python棋类游戏编写入门
剛接觸棋類游戲程序編寫的朋友,往往比較迷惑,不知從何下手。
本文總結(jié)了棋類游戲的主程序流程、計(jì)算機(jī)走子策略、打分方式(以井字棋、黑白棋、五子棋為例),未使用minimax算法,比較簡單,適合剛接觸的朋友。特記錄如下:
作者:hhh5460
本文地址:https://www.cnblogs.com/hhh5460/p/10114236.html
一、主程序流程
所有雙人對(duì)戰(zhàn)棋類游戲在人機(jī)模式下的主程序流程幾乎雷同。
流程:
1.初始化棋盤
2.確定玩家,執(zhí)黑先走
3.進(jìn)入循環(huán)
4.打印棋盤、提示走子、(顯示得分?)
5.思考走法、放棄終止
6.落子、(吃子?、翻棋?)
7.判斷局面、是否終止、(是否輪換?)
8.切換棋手
9.游戲結(jié)束,返回信息
二、計(jì)算機(jī)走子策略
1.對(duì)所有合法的走子位置“打分”
2.取分值最高的走子位置
3.再取行最小的,若行相等,再取列最小的
三、“打分”方式
注意:同一個(gè)點(diǎn)位,雙方的棋型分都要加上!!
1.井字棋
棋型分值:
三連? 100
活二? 10
活一? 1
2.黑白棋
翻了對(duì)方棋子的數(shù)目、或者翻了對(duì)方棋子的權(quán)重之和
3.五子棋
棋型分值:
0.活五 ?? ?+100000
1.死五? +100000
2.活四 ?? ?+10000
3.死四 ?? ?+1000
4.活三 ?? ?+1000
5.死三 ?? ?+100
6.活二 ?? ?+100
7.死二 ?? ?+10
8.活一 ?? ?+10
9.死一? +2
特別說明:
10.跳連 ? 兩邊棋型分相加 + 上一級(jí)分值的20% ?商榷
四、確定棋型
方法是,從當(dāng)前落子位置向周圍八個(gè)方向搜索。
注意,黑白棋八個(gè)方向是獨(dú)立考慮的,而井字棋與五子棋八個(gè)方向的相反方向要放在一起考慮。
五、棋力分析
這種按照最高得分走棋的策略,就是我們下棋時(shí)常說的:貪吃,即貪婪模式。棋力不會(huì)太高,屬于入門水平
六、代碼
(未公布)
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的python棋类程序_python棋类游戏编写入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java变量命名规则_变量的概念和声明
- 下一篇: python中grid函数_python