刚接触棋类游戏程序编写的朋友,往往比较迷惑,不知从何下手。
本文总结了棋类游戏的主程序流程、计算机走子策略、打分方式(以井字棋、黑白棋、五子棋为例),未使用minimax算法,比较简单,适合刚接触的朋友。特记录如下:
作者:hhh5460
本文地址:https://www.cnblogs.com/hhh5460/p/10114236.html
所有双人对战棋类游戏在人机模式下的主程序流程几乎雷同。
流程: 1.初始化棋盘2.确定玩家,执黑先走3.进入循环 4.打印棋盘、提示走子、(显示得分?) 5.思考走法、放弃终止 6.落子、(吃子?、翻棋?) 7.判断局面、是否终止、(是否轮换?) 8.切换棋手9.游戏结束,返回信息
1.对所有合法的走子位置“打分”2.取分值最高的走子位置3.再取行最小的,若行相等,再取列最小的
注意:同一个点位,双方的棋型分都要加上!!
棋型分值: 三连 100 活二 10 活一 1
翻了对方棋子的数目、或者翻了对方棋子的权重之和
棋型分值: 0.活五 +100000 1.死五 +100000 2.活四 +10000 3.死四 +1000 4.活三 +1000 5.死三 +100 6.活二 +100 7.死二 +10 8.活一 +10 9.死一 +2
特别说明: 10.跳连 两边棋型分相加 + 上一级分值的20% ?商榷
方法是,从当前落子位置向周围八个方向搜索。
注意,黑白棋八个方向是独立考虑的,而井字棋与五子棋八个方向的相反方向要放在一起考虑。
这种按照最高得分走棋的策略,就是我们下棋时常说的:贪吃,即贪婪模式。棋力不会太高,属于入门水平
(未公布)
转载于:https://www.cnblogs.com/hhh5460/p/10114236.html
相关资源:《Python游戏编程入门》源代码