【发布时间】:2013-06-18 23:54:49
【问题描述】:
我正在寻找一种表示国际象棋位置的有效方法。 我的“效率”标准是:
- 需要尽可能少的内存
- 给定位置表示和合法移动(以通常的方式表示,例如 pgn 格式),很容易计算得到的位置表示。也就是说,函数 new_position = compute_position(old_position, move) 可以(或已经)以一种非常有效的方式实现(从运行时的角度来看)。
- 比较两个位置是否相同很容易
我试图偏离标准表示的原因是我的要求略有不同。具体来说,我不是在尝试开发国际象棋引擎,因此不需要移动生成和相关问题。我只需要关注一些现有的游戏,并代表某些位置,并将它们存储在数据库中。
如果有已经提供此功能的软件包,那就太好了。如果你对如何做有想法,我很乐意开发它:)
谢谢...
【问题讨论】:
-
这可能不满足要求 1),但 FEN 确实满足 2) 和 3):en.wikipedia.org/wiki/Forsyth–Edwards_Notation
-
我想到了 FEN,它的内存效率不高,但它可能会。有没有实现我的第 2 点的免费软件?我没有找到这样的代码,因此认为如果我要自己编写它,我可能会尝试找到一种更有效的记忆方式。
标签: chess representation