如有错误,请指正。搜索算法,即修改后的 alpha beta,探索合法 Action 列表。首先,需要初始化 像这样的位板数组:
unsigned long long Knight_attacks[64]= {0x020800、0x050800 等等...}
每个元素在该方格的所有可能的攻击方格上都将具有 1,例如,knight_attacks[f4] 将在对应于可能的攻击方格的 d5、e6、g6、h5、d3、e2、g2 和 h3 上具有 1来自 f4。
一旦初始化,就需要以某种方式转换为列表......
如何将位板数组转换为列表? 感谢各位 sibling 的帮助。
最佳答案
简单的解决方案包括循环位板的位:
while ( x ) {
U64 ls1b = x & -x; // isolate LS1B
...
x &= x-1; // reset LS1B
}
更高级的算法可以在国际象棋编程维基中找到: https://chessprogramming.wikispaces.com/Bitboard+Serialization
关于artificial-intelligence - 如何将位板数组转换为列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37534823/