一、项目介绍
基于Android的中国象棋游戏分为人机对弈、双人对弈,人机对弈分为红方和黑方,用户可以选择红方或黑方执棋。游戏开始后,用户选择每一个棋子时,游戏会显示其可以走的格子,可以无限步数悔棋。游戏有游戏音乐、音效开关,可以设置电脑水平初级、中级、高级,双人对弈和人机对弈差不多,区别是人机对弈中是电脑自动走棋,双人对弈需要双方玩家都是手动下棋,且悔棋逻辑也是每次只撤回一步。
二、主要算法
棋子走法的生成
- 步数有限的棋子,如帅(将)、仕(士)、象(相)、马和兵(卒),使用偏移数组来得到棋子所有可能到达的位置,然后再判断棋子到达该位置是否合法即可。 - 步数不限的棋子,如车、炮,使用十字扫描法,即沿着上下左右四个方向扫描,来得到棋子所有可能到达的位置。
象棋局面的判断
- 将军局面的判断 使用反向思维进行考虑,给帅或将赋予对方攻击性棋子的走法,进而找出要吃它的棋子。 - 胜利局面的判断 遍历一方所有可能的走法,如果都被将军,则该方失败,另一方获胜。 - 和棋局面的判断 1) 重复局面出现4次(局面使用Zobrist哈希算法) 2) 双方都没有攻击性棋子 3) 连续60回合双方都没有吃过一个棋子
三、项目截图
还有详细代码说明文档
------转载请注明出处,感谢您对原创作者的支持------