# 游戏状态管理

> Model full game state on a backend server to enforce rules and validation, and prevent cheating.

为了实现服务器权威，您可以在后端服务器上建模完整的游戏状态。这意味着每个玩家客户端都充当视口，而服务器则强制执行规则、验证和[预防作弊](./cheat-prevention.md)。您可以将游戏状态数据存储在 Cloud Save 中，以确保游戏在客户端之间具有持久性并可以从任何点恢复。

服务器游戏状态管理是构建异步多人游戏的一种强大方法，因为您可以利用云服务器作为可信来源，而客户端处理演示。客户端可以专注于流畅的 UI 和可视化效果，而服务器则管理游戏玩法、完整性和同步。

## 国际象棋示例##chess-example

对于像国际象棋这样的游戏，服务器可以在 Cloud Code 和 Cloud Save 中保存权威的棋盘和棋子位置。当玩家移动棋子时，他们的客户端会向 Cloud Code 函数发送请求，包括如下参数：

* 游戏 ID
* 移动的棋子
* 起始位置
* 结束位置

国际象棋游戏的 Cloud Code 函数可以在每个回合执行以下操作：

1. 使用游戏 ID 从 Cloud Save 加载当前游戏状态。
2. 确认这是否是正确玩家的回合。
3. 确认起始位置上的棋子与玩家请求的棋子类型相符。
4. 验证棋子可以合法移动到结束位置。
5. 移动棋子以更新棋盘状态。
6. 计算该棋子是否吃掉对手的棋子。
7. 检查是否将死，若是则结束游戏。
8. 将更新后的棋盘状态保存至 Cloud Save。
9. 通过[推送消息](./modules/how-to-guides/push-messages.md)发出实时更新以通知对手此棋步。
10. 向玩家的客户端返回 Cloud Code 已处理此棋步的响应。
