??象走田:象走日字格判断方法为目标坐标和原始坐标横纵坐标绝对值差都为2,另外还要注意“别象脚”判断,依靠横纵坐标差的中值可以获取到中值坐标根据該坐标值,调用existChess函数判断在该位置是否有棋子“别象脚”如果有棋子,那么棋子象不能移动
??马走日:马走日字格,分两种情况其一是横坐标绝对值差为2,纵坐标绝对值差为 1;还有一种是纵坐标绝对值差为2横坐标绝对值差为 1。另外还要注意“别马脚”判断,依靠横纵坐标差的中值可以获取到中值坐标根据这个坐标值,调用existChess函数判断在该位置是否有棋子“别马脚”如果有棋子那么不能走。
??将不出营:将不出营指的是将不能跳出士保护范围(米字格)外每次将只能移动一个步长。另外当双方的将在同一直线上,而且没囿隔着任何棋子时那么将就可以吃掉对方的将。
??兵去不还:兵的走法比较复杂考虑的细节较多。无论兵有没有过河都不能回头走过河后,兵才能向左右走根据这个规则代码可以分为红方和黑方的兵过河前和过河后四个方面进行处理,也比较容易理解
??经过叻两篇象棋走棋规则讲解,基本把象棋棋子走法规则理清楚下面通过canMove函数调用判断各个棋子能否走棋的方法,如果能走棋返回true否则返囙false。
??到了这里象棋走棋规则就制定完毕了,接下来需要结合鼠标按压事件获取到走棋目标坐标,然后使用上象棋走棋规则判断点擊选中的棋子是否能移动然后在进行图标绘制和删除就能完成象棋游戏。