我试图了解位板表示在国际象棋编程中的工作原理,但我找不到关于一个细节的有用信息(或者只是无法正确翻译它^^)。我的问题是,如何自动生成掩码以逐个移动每个位置。我假设它是一个矩阵,其中每种类型都定义了他可以从该位置移动的每个字段(数组 [5] [64] 用于 wP、bP、K、R、N、B)。例如对于下面的 Rook 位置,仅允许的位置是:
0 0 1 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 1 0 0 0 0 0
1 1 R 1 1 1 1 1
0 0 1 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 1 0 0 0 0 0
我假设我必须为每种类型和它可以步进的每个图块创建类似的东西,但我是否必须手动将其硬编码为数组,或者有可能在程序运行后自动化这个过程并预先计算它?