【发布时间】:2021-02-16 12:42:23
【问题描述】:
我正在尝试在 Haskell 中实现一个函数,该函数返回一个列表,该列表包含起床玩家的所有可能动作。该函数的唯一参数是一个字符串,由棋盘的实际状态(Forsyth-Edwards Notation)和移动的玩家(b/w)组成。
符号示例:rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w(起始板状态)
移动以 [origin]-[destination] 形式的字符串传输。目标始终是 [column][row] 形式的位置,其中左下角称为 a1,右上角称为 h8。例如,移动将是移动“b3-c4”。 (没有castling/En-passant)。
在 Java 中,我会为 Board 使用 2d 数组,但在 Haskell 中我找不到类似的解决方案(我是函数式编程的新手)。
什么是表示棋盘的好方法/数据结构?
【问题讨论】: