考虑一个方阵,所有的槽都用零填充。这将是战场。现在,为了放置船只,我通过放置1.表示船舶的尺寸为1,2,3,这意味着两个或三个连续的块应该是1.它们也可以是水平的或垂直的。现在,敌人搜索我的船只的最佳策略是什么。他不知道我是如何放置我的船只的。什么是搜索矩阵的好策略?或者在制作“聪明的动作”时,如何让CPU成为更好的玩家? ?
这个想法可以扩展到形成一个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
任何帮助都将非常感谢!!
答案 0 :(得分:0)
当你有一艘大小为1的船时,你基本上需要枚举所有的领域并检查邻居是否有更大的船只。您可以使用特定顺序保存一些工作,例如遍历所有行:
1 2 3 4 5 6
7 8 9 10 11 12
13 ...
如果你必须检测更大的船只,你检查以下两个正确的字段(如果不是越界;你检查第一个字段,如果它是船的一部分,那么你检查第二个)以及两个底部字段(再次边界检查)。使用该遍历,您可以确保从不检查左侧和顶部区域是否有更大的船只。当你检查更大的船只时,你应该记住你已经访问了多少个位置,并在移动后跳过这些位置。
这只是一个建议而且效率相对较高。使用一些内存后,您可以在检查底部后避免双重访问字段,但这不会导致现实生活中的性能获胜。