2

我正在构建一个类似于奥赛罗的益智游戏,并且我想构建一个帮助玩家学习游戏的教程模式。为此,我需要检测连续值的水平线、垂直线和对角线(在本例中为白色或黑色),以向玩家展示他们可以做出的下一步可能的动作......

在此处输入图像描述

我正在用 C++ 构建它,但我真的只对可以使用 2D 矩阵(或 1D 数组,如果它可以简化事情)检测线条的一般策略感兴趣。

我目前的策略非常简单,这让我怀疑这是最慢的方法......

for y = 0 to 7
  for x = 0 to 7
    cell = find the first unoccupied cell (no color)
    inspect the 8 surrounding cells to see if they contain a color
      if so, trace the cells in that direction to see if it forms a line of at least 3 contiguous colors
        if so, store the coords of those cells in a list of detected lines

其他想法?

提前感谢您的智慧!

4

1 回答 1

1

聚类,尤其是层次聚类可能会有所帮助。

于 2013-10-21T00:29:41.847 回答