战场 - 棋盘游戏策略

时间:2014-06-08 22:11:24

标签: algorithm matrix

考虑一个方阵,所有的槽都用零填充。这将是战场。现在,为了放置船只,我通过放置1.表示船舶的尺寸为1,2,3,这意味着两个或三个连续的块应该是1.它们也可以是水平的或垂直的。现在,敌人搜索我的船只的最佳策略是什么。他不知道我是如何放置我的船只的。什么是搜索矩阵的好策略?或者在制作“聪明的动作”时,如何让CPU成为更好的玩家? ?

  1. 随机搜索
  2. 搜索,当你发现一次攻击时,相邻的块会检查它是否大小为2/3。
  3. 此外,CPU的初始定位可以基于之前的获胜位置,而不仅仅是基于随机数。
  4. 任何其他想法..... ??
  5. 这个想法可以扩展到形成一个20 x 20矩阵和更多船只的大型棋盘游戏。下面给出一个例子。

    0 0 0 0 0 0
    0 1 0 0 0 0
    0 0 0 1 1 0
    0 1 0 0 0 0
    0 1 0 0 0 0
    0 1 0 0 0 0
    

    任何帮助都将非常感谢!!

1 个答案:

答案 0 :(得分:0)

当你有一艘大小为1的船时,你基本上需要枚举所有的领域并检查邻居是否有更大的船只。您可以使用特定顺序保存一些工作,例如遍历所有行:

1 2 3 4 5 6
7 8 9 10 11 12
13 ...

如果你必须检测更大的船只,你检查以下两个正确的字段(如果不是越界;你检查第一个字段,如果它是船的一部分,那么你检查第二个)以及两个底部字段(再次边界检查)。使用该遍历,您可以确保从不检查左侧和顶部区域是否有更大的船只。当你检查更大的船只时,你应该记住你已经访问了多少个位置,并在移动后跳过这些位置。

这只是一个建议而且效率相对较高。使用一些内存后,您可以在检查底部后避免双重访问字段,但这不会导致现实生活中的性能获胜。