我正在寻找一种有效的方式来表示国际象棋的位置。我的“效率”标准是:
- 需要尽可能少的内存
- 给定一个位置表示和一个合法移动(以通常的方式表示,例如以 pgn 格式表示),很容易计算得到的位置表示。也就是说,函数 new_position = compute_position(old_position, move) 可以(或已经)以非常有效的方式实现(从运行时的角度来看)。
- 比较两个位置是否相同很容易
我试图偏离标准表示的原因是我的要求略有不同。具体来说,我不是在尝试开发国际象棋引擎,因此不需要移动生成和相关问题。我只需要关注一些现有的游戏,并代表某些位置,并将它们存储在数据库中。
如果有一个软件包已经提供了这个功能,那就太好了。如果您对如何做有想法,我很乐意开发它:)
谢谢...