在战舰游戏中定位舰船的算法

时间:2012-05-31 23:23:35

标签: algorithm position

我必须在C ++中实现Battleship game。它将是 Human vs Computer 游戏。

除了在游戏开始时定位计算机的船只,一切都很直接。计算机船的位置应该是随机的。但是我应该如何(最佳地)为船只选择阵列的单元?

编写可为船舶设置随机位置的代码,然后检查附近的单元格是否为空可能非常耗时。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

空间太大,总是有自由细胞可供使用,因此反复尝试放置船只,然后失败,完全没问题。

通过确保您的船只不会碰到(因为如果它们正在摧毁船只可能给对手提供免费信息),您可以实现足够接近最佳的定位,并且还可以通过放置更短的船只来实现边缘附近的概率略高(以抵消在中心附近更可能发现较大船只的事实)。

答案 1 :(得分:2)

使用链接列表,其中每个节点都是指向电路板上正方形的链接。然后,您可以a)生成随机节点,b)当您放置船只从列表中删除节点时。您可以从放置的船周围移除额外的节点,以便为该船提供一些空间(不希望您的船只接触;)

答案 2 :(得分:0)

如果是计算机与计算机,则只需确保将船舶随机放置在船上,这样船舶就不会相互靠近。

然而,既然你正在扮演一个人,那么你可以获得更多的创造力。就像游戏摇滚剪刀一样,你可以通过利用人类的倾向来获得优势。