【发布时间】:2020-01-23 16:57:35
【问题描述】:
自从我几年前从事国际象棋游戏以来,我已经列出了一些可以让游戏正常运行的东西,但我可能需要一些额外的建议来简化我过去使用的方法。
我使用射线(二维矢量)来检查棋子可以移动和攻击的位置,但我发现代码有点过于生涩(例如必须为骑士移动设置例外)。是否有通用的方法来检查移动和攻击?
我也听说过位板,但它们是如何工作的,位板的用途是什么?我使用 8x8 数组来描述指定位置的颜色和类型。这和bitboard一样吗?我可以使用位板检查有效动作吗? En Passant 规则呢?
我不是要求:
- 人工智能 (A.I) 算法
- 源代码
我过去的项目列表如下:
- 攻击地图(二维射线投射)。铸造旗帜的状态取决于它。
- 城堡旗帜
- 用于典当移动的第 2 或第 7 行标志。
- En Passant 标志
- 射线(2 维射线投射)检查每个碎片可以移动和攻击的位置
我希望我的代码尽可能小,并且需要检查移动和攻击有效性的关键方法。我不要求源代码,只要求方法如何工作。
谢谢。
【问题讨论】: