我正在制作一个基于位板的国际象棋引擎,我想问一下-假设我为每个棋子制作了一个位板,我该如何处理它?我读过一些技巧,比如如果你将棋子的位板向左移动7和9,你会得到一个代表他们攻击的方块的位板,但是我该如何使用它呢?或者我如何使用车的位板或毕晓普的位板?比如他们的目标是什么,如果我找到了它,我如何将它与其他棋子连接起来?我已经在上面搜索了好几天了,但是没有找到一个足够的答案……谢谢
发布于 2021-01-20 14:43:48
位板是不同于例如2d阵列板或1d阵列的另一种类型的板重新表示。主要优点是,它们可以帮助您更快地为职位生成有效的移动,并且您可以更容易地使用它们来获得特定的评估结构和参数。
通常每个棋子和每边都有一个位板(总共12个),每个颜色都有一个位板(总共2个),一个用于所有棋子,一个用于投掷权限,一个用于侧面移动。使用位运算符和位操作,您可以在预计算表和少量位操作的帮助下计算位置的有效移动。
我建议看看this YouTube系列,它从头开始编写一个位板国际象棋引擎的整个过程。
了解这些概念如何工作的另一个很好的来源是查看Chessprogramming站点。
我希望它能有所帮助!这并不是一件容易的事情,但是使用它们会有很大的收获。
https://stackoverflow.com/questions/65806830
复制相似问题