代码之家  ›  专栏  ›  技术社区  ›  SuperHeroY

在大于8x8的棋盘上进行象棋移动验证?[已关闭]

  •  -1
  • SuperHeroY  · 技术社区  · 7 年前

    我正在创建一个国际象棋变体。规则和棋子与经典国际象棋相同。唯一不同的是电路板的大小(12x12而不是8x8)。

    我的目标是只验证和应用移动。除了从头开始写,我还有什么选择?

    大多数流行的格式似乎仅限于8x8板。

    我对任何流行的编程语言都很在行。

    1 回复  |  直到 7 年前
        1
  •  1
  •   chessprogrammer    7 年前

    国际象棋引擎在移动生成中有三种通用方法。在国际象棋编程术语中,通常称为:

    1) 比特板

    2) 邮箱(用于带填充的数组的国际象棋行话)

    3) 工件清单

    今天使用的最常见的方法是位电路板,不幸的是,它不容易修改为更大的电路板。然而,这对你来说应该不会太坏。比特板之所以成为事实上的标准,并不是因为它们最容易实现(实际上它们是最复杂的),而是因为它们的移动生成速度要快得多(通过扩展验证)。然而,这只适用于需要每秒验证数千万次移动的搜索功能。如果你只是想要好的旧的简单移动验证,方法二应该是足够的,并且容易适应更大的电路板。如果您想查看使用此方法的国际象棋引擎,请查找使用邮箱或oX88板表示的英语。我认为说教式CPW引擎使用邮箱。

    https://chessprogramming.wikispaces.com/CPW-Engine

    下面是一篇关于移动生成的文章: https://chessprogramming.wikispaces.com/Move+Generation