Java 象棋(3)

先组织整理下最为麻烦的部分

棋子的运行规则

包括有 车、马、相、仕、帅、炮、兵的合法落点

棋盘以及其布局

所有棋子落点判定均在switch语句中进行列举,根据鼠标按下时对应棋子的编码进行判断

合法落点判定规则包括

一.是否按照对应棋子的合法路线下棋

二.落点是否在棋盘范围内

总体需要使用的棋子运动方向。使用数组存储以便于随时调用

move:上,下,左,右四个方向的运动

nextmove:左上,右上,左下,右下四个斜方向的运动

housemove:用于马的规则判定。

1.帅/将  运行规则较为简便,只需要在田字格内进行上下左右四个方向移动

2.仕/士  在田字格中走斜线

3.相/象  需要在对应的半场内,以更大的田字型路线运行

需注意落点范围限制以及大范围“田”字中心不能存在棋子

4.马  需要用到开头提及的housemove数组中八个方向判断

思路:分为上下左右四个大方向,再将每个大方向按照中轴线分为两部分,分别判断每部分中的“日”字型路线是否被阻碍

四个大方向即为判断“日”字型路线是否受到阻碍,八个小方向1~8即为棋子合法落点

按照顺时针方向查找,未被阻碍方向即为合法落点

5.车  走直线直到碰到第一个棋子或底线

走直线方向判定:上下左右四个大方向

以向上为例

当碰触到第一个棋子时判断对应编码为己/异方进而决定是否为合法落点

6.炮  走直线部分可以与车共用,碰触到第一个棋子后需进行再次搜索

再进行上下左右四个方向搜索,直到碰触到第一个棋子

7.兵/卒  过河前仅向一个方向走,过河后无法后退

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值