描述国际象棋规则的推荐数据格式
我打算写一个国际象棋服务器和一个或多个客户端,用于下棋。我想用一种不依赖于特定编程语言的方式来描述国际象棋的规则,比如根据游戏状态允许的走法、游戏结束的规则等。这有点棘手,因为一些国际象棋规则(比如王车易位、过路兵、基于三次或更多重复走法的和棋)不仅与棋盘布局有关,还与走棋的历史有关。
我希望规则的格式能够是:
- 文本格式
- 人类可读
- 基于某种标准(比如YAML、XML)
- 可以在多种语言中轻松解析
不过,如果有合适的解决方案,我愿意放弃其中任何一个要求。
我主要想问的是:我该如何从这种数据格式构建出如此复杂的算法,以处理复杂的游戏状态?
还有一个后续问题是:你能提供一个类似问题的例子,并且是用类似的方式解决的吗?这样我可以作为一个起点。
编辑:为了更清楚地说明——考虑到我会有一个用Python写的服务器,一个用C#写的客户端和另一个用Java写的客户端。我希望避免在每个地方都指定规则(比如允许的棋子移动、将军的情况等)。我更希望能以一种不依赖于特定语言的方式只指定一次这些规则。
9 个回答
暂无回答