我正在设计一个 SDL 游戏,其中玩家(人类)可以在 N*M 网格上放置网,这样每个网只覆盖网格的单个元素(网格上有 N*M 元素/单元)。现在在游戏的每一轮(游戏目前有 10 轮)中,玩家可以通过购买网在网格上放置网,每个网花费 NetCost(从玩家的得分中减去)以接住落下的球。此外,玩家可以在任何回合开始时将网移动到共享边缘(即上、下、左、右)的单元格/元素。现在球在每一轮中落下(每轮理论上是瞬时的,尽管在游戏的视觉效果中它持续 2 秒)球员的网接住这些球,因此放置在一个单元格的网可以接住所有落在该特定单元格的球。每错过一个球,得分 B 将受到处罚。玩家以固定分数开始。电脑玩家和人类玩家分别玩同一回合,因此人类玩家做出的选择不会影响电脑玩家,反之亦然。
现在我要为单人模式设计一个高效的电脑播放器。电脑播放器也将从与人类玩家相同的分数开始。计算机播放器的目的是使用用户可用的相同网络在相同网格上获得最高分。计算机玩家的这些输入将是在回合 R 开始时在每一回合 R 中落下的球以及它们的网格位置。我怎样才能为这个游戏设计一个高效的电脑播放器?
请注意,每一轮的网格大小是恒定的,为 30x30。两名球员的起始分数固定为 100,000。但是,用户可以在游戏开始时(即第 1 轮之前)选择净成本和落球罚分。这些成本在所有轮次中保持不变。网数可能受到限制让我们说每轮200。我不确定我可以在这里应用什么算法。有人可以指导我正确的方向吗?