基于网格的战棋游戏让位置成为每个决策的一部分。单位必须到达一个有用的方格,尊重障碍物,并在对手做出反应之前从定义的范围内发起攻击。从一个小型棋盘和每方一个单位开始,以便在添加职业、装备或长篇战役之前验证这些关系。
本指南描述了一个虚构的回合制原型和一个 AI 辅助构建请求。其中的坐标和伤害值是示例的设计选择,而非来自已完成游戏的观察结果。使用此演练来检查您自己构建的行为。

明确棋盘及其规则
使用一个五乘五的棋盘。将列和行编号从 1 到 5,位置写法为先列后行。将玩家放置在 (1,1),对手放置在 (3,1),并在 (2,2) 放置一个不可通行的障碍物。两个单位初始生命值均为 4。
| 棋盘元素 | 示例规则 | 玩家反馈 |
|---|---|---|
| 开放方格 | 单位可占据一个空方格 | 显示选定的目的地 |
| 障碍物 | 不可进入或穿越 | 标记为阻挡 |
| 移动 | 最多两步正交移动 | 高亮显示可达的空方格 |
| 攻击 | 一个正交相邻的目标 | 显示有效目标和伤害 |
正交指上、下、左或右,不包括对角线。路径必须保持在棋盘内,且不能穿过被占据或阻挡的方格。高亮显示实际可达的目的地,而不是绘制一个包含障碍物后方不可达单元格的简单半径。

定义一个完整的回合
在玩家回合中,单位可以移动一次,最多两步有效移动,然后可以攻击一次。任一动作均可跳过。攻击造成 2 点伤害,且仅当对手与玩家方格共享一条边时才合法。在这些选择之后结束回合。
对手使用一条刻意简单的规则:如果玩家在结束回合时与对手正交相邻,则对手保持不动并造成 2 点伤害。否则它等待。生命值降至零或以下的单位立即被击败,比赛在任何后续反应之前结束。玩家通过击败对手获胜,如果玩家单位被击败则失败。
这个对手是一个测试夹具,而不是一个完整的竞争性 AI。其可预测的行为有助于隔离移动、相邻关系和回合顺序错误。
演练一个合法序列
从 (1,1) 移动到 (2,1)。该目的地是空的,且距离一步正交移动。攻击位于 (3,1) 的相邻方格上的对手,将其生命值从 4 减少到 2。结束回合:对手保持相邻,并将玩家生命值从 4 减少到 2。
| 时刻 | 玩家位置 | 玩家生命值 | 对手生命值 |
|---|---|---|---|
| 开始 | (1,1) | 4 | 4 |
| 移动和攻击后 | (2,1) | 4 | 2 |
| 对手回应后 | (2,1) | 2 | 2 |
| 玩家第二次攻击 | (2,1) | 2 | 0:胜利 |
在下一个玩家回合,保持不动并攻击一次。对手生命值归零,因此游戏立即结束,对手不再攻击。这是根据既定规则进行的计算,而非测试结果。
给 AI 游戏制作器一个精确的规格说明
描述棋盘坐标、有效路径、动作限制和效果顺序。SEELE 的能力目录描述了从书面想法创建游戏,并生成 2D 角色、场景和界面元素。这些类别并不能证明这个确切的网格、寻路或回合系统已被生成或测试。
创建一个原创的单人回合制战棋原型。
使用一个 5 乘 5 的网格,列和行编号从 1 到 5。
将玩家放置在 (1,1),对手放置在 (3,1),并在 (2,2) 放置一个阻挡方格。
两个单位初始生命值均为 4。在每个玩家回合中,允许最多一次移动,
通过空的、在范围内的、未阻挡的方格进行最多两步正交移动。
移动后允许一次可选攻击;它只能目标正交相邻方格上的对手,
造成 2 点伤害。任一动作均可跳过。显示可达单元格、选中单位、生命值和回合状态。
当玩家结束回合时,对手保持不动,如果正交相邻则造成 2 点伤害;
否则它等待。生命值降至零或以下的单位立即被击败,
在任何后续反应之前结束比赛。
拒绝非法移动、被占据的目的地和对角线攻击。
重新开始恢复初始位置、生命值、障碍物和玩家回合。
使用原创艺术,不要使用现有游戏的角色或界面。
首先使网格和占据状态可见,然后实现移动及其高亮显示的目的地。在移动可靠后,再添加攻击和对手回应。如果路径错误,请向助手提供起始方格、目的地、障碍物和预期结果,而不是要求它让游戏“更具战术性”。

解释为什么某个移动不可用
将无效目的地与不可达路径区分开来。即使方格是空的,如果移动预算内的所有路径都被阻挡,它仍然可能不可达。当移动失败时,保持单位在其原始方格,保留其剩余动作,并显示简短的原因。
使用不同的视觉提示来表示可攻击目标,而不是将每个附近的方格都视为可攻击。移动后,从新方格重新计算相邻关系。如果对手被击败,移除或禁用后续动作,并只显示一次结果。
检查棋盘和回合序列
- 移动:从 (1,1) 移动到 (2,1),然后重新开始并尝试阻挡方格 (2,2)。第二次移动必须失败且不改变位置。
- 被占据和超出范围的单元格:拒绝对手的 (3,1) 方格作为目的地,并拒绝任何超出 1–5 范围的位置。
- 相邻关系:将玩家放置在对手的对角线位置,并确认攻击不可用。从 (2,1) 开始,确认攻击是合法的。
- 动作限制:移动一次后,拒绝该回合的第二次移动;攻击一次后,拒绝第二次攻击。无效动作不应消耗有效动作。
- 胜利和重置:遵循两次攻击的示例。检查对手在被击败后是否不再回应,然后重新开始并验证初始位置和生命值。
对于失败的检查,包括坐标和完整的回合状态。例如:“玩家在 (2,1),对手在 (3,1),生命值为 2。玩家攻击造成 2 点伤害,但对手仍然做出了回应。当对手生命值归零时,立即结束比赛。” 也要重新测试非致命攻击,因为那一次在回合结束后仍应收到回应。
规划一个假设的掩体规则
在基本回合正常工作后,考虑标记一个单独的空方格作为掩体。在这个提议的迭代中,站在该方格上的单位从下一次传入攻击中受到的伤害减少 1 点,最低为零;该保护被该次攻击消耗。在比赛开始前选择掩体方格并显示它。这是一个设计提案,而非观察到的测试结果。
对于检查,将一个单位放在标记的掩体方格上并施加一次 2 点伤害的攻击:该单位应损失 1 点生命值,下一次 2 点伤害的攻击应造成完整的 2 点伤害,除非保护在您明确定义的规则下得到更新。在将其添加到更长的遭遇战之前,决定当单位离开并返回时掩体是否刷新。
常见问题
第一个网格应该有多大?
小型棋盘更容易推理,因为您可以检查每个可达单元格。示例使用五行五列,但合适的大小取决于移动和攻击范围。只有在较小棋盘上路径、动作限制和回合转换正常工作后,再增加大小。
移动和攻击应该使用相同的范围吗?
它们可以不同。在这里,单位最多移动两步正交距离,但只能攻击正交相邻的对手。分别显示这两种类型的有效目标,以便玩家理解一个方格是否可达,以及移动后是否可能攻击。
如果障碍物阻挡了直接路径怎么办?
在移动预算内,通过空的、在范围内的单元格找到一条有效路径。即使目的地在几何上很近,如果其唯一路径穿过障碍物或单位,它仍然可能不可达。解释失败的移动并保持单位位置不变。
如何复现回合顺序错误?
记录棋盘位置、生命值、当前回合和确切动作。使用固定的对手,并在更改后重复相同的序列。一旦基本规则正常工作,也可以记录其初始条件来测试额外的对手行为或随机地图。
先让一个位置决策生效
一个小网格、一个受限的移动和一个清晰的回应已经为玩家提供了战术问题。在添加单位或地形效果之前,验证棋盘、攻击范围和比赛结束时机。在 SEELE AI 创作游戏制作器 中开发您自己的棋盘,然后针对相同的简单场景检查每条新规则。如需更广泛的工作流程,请阅读 如何使用 AI 创建游戏。


