我将编写一个国际象棋服务器和一个或多个国际象棋客户端,我想以独立于编程语言的方式描述国际象棋规则(例如,基于游戏状态的允许移动,游戏完成时的规则)。这有点棘手,因为一些国际象棋规则(例如 King Castling、en passent、基于 3 个或更多重复移动的平局)不仅基于棋盘布局,而且基于移动的历史。
我希望格式为:
- 文本的
- 人类可读
- 基于标准(例如 YAML、XML)
- 易于用多种语言解析
但我愿意牺牲其中任何一个来换取合适的解决方案。
我的主要问题是:如何构建如此复杂的算法,以从数据格式对如此复杂的状态进行操作?
后续问题是:您能否提供一个以类似方式解决的类似问题的示例,可以作为起点?
编辑:为了响应清晰的请求——考虑我将有一个用 Python 编写的服务器,一个用 C# 编写的客户端和另一个用 Java 编写的客户端。我想避免在每个地方指定规则(例如允许的棋子移动、检查情况等)。我更愿意以独立于语言的方式指定这些规则一次。