我正在尝试在Haskell中实现一个函数,该函数返回一个列表,其中包含当前玩家的所有可能移动。该函数的唯一参数是由棋盘的实际状态(用Forsyth-Edwards Notation表示)和移动的玩家(b/w)组成的字符串。
符号示例:rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w(起始棋盘状态)
移动被传输为形式为[origin]-[destination]的字符串。目标位置始终是形式为[column][row]的位置,其中左下角的方格称为a1,右上角的方格称为h8。例如,移动“b3-c4”就是一个移动(没有王车易位/吃过路兵)。
在Java中,我会使用2D数组来表示棋盘,但在Haskell中,我找不到类似的解决方案(我是函数式编程的新手)。
什么是表示国际象棋棋盘的好方法/数据结构?
符号示例:rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w(起始棋盘状态)
移动被传输为形式为[origin]-[destination]的字符串。目标位置始终是形式为[column][row]的位置,其中左下角的方格称为a1,右上角的方格称为h8。例如,移动“b3-c4”就是一个移动(没有王车易位/吃过路兵)。
在Java中,我会使用2D数组来表示棋盘,但在Haskell中,我找不到类似的解决方案(我是函数式编程的新手)。
什么是表示国际象棋棋盘的好方法/数据结构?