我正在创造一个国际象棋变体。规则和棋子与经典国际象棋相同。唯一不同的是电路板的尺寸(12x12而不是8x8)。
我的目标是仅验证和应用移动。除了从头开始编写所有内容之外,我还有哪些选择?
大多数流行的格式似乎仅限于8x8主板。
我对任何流行的编程语言都很好。
答案 0 :(得分:1)
国际象棋引擎在移动生成中采用三种通用方法。在国际象棋编程术语中,这些俗称为:
1)位棋盘
2)邮箱(带有填充的数组的国际象棋术语)
3)作品清单
目前使用的最常用的方法是Bitboards,遗憾的是它不容易修改为更大的主板。但是,对你来说这不应该太糟糕。比特板是事实上的标准的原因并不是因为它是最容易实现的(它们实际上是最复杂的),但是因为它们对于移动生成(以及通过扩展验证)来说要快得多。但是,这仅适用于需要验证每秒移动数千万次的搜索功能。如果你只是想要旧的简单移动验证,方法二应该是足够的,并且很容易适应更大的板。如果您想查看使用此方法的国际象棋引擎,请查找使用邮箱或oX88板表示的工程师。我认为教学CPW引擎使用邮箱。
https://chessprogramming.wikispaces.com/CPW-Engine
这是一篇关于移动生成的文章: https://chessprogramming.wikispaces.com/Move+Generation