我正在构建一个类似于奥赛罗的益智游戏,我想建立一个帮助玩家学习游戏的教程模式。要做到这一点,我需要检测连续值的水平,垂直和对角线(在这种情况下,白色或黑色),以显示玩家可能做出的下一步动作......
我正在用C ++构建它,但我真的只对使用2D矩阵检测线条的一般策略感兴趣(如果它简化了事情,则可以用于一维数据)。
我目前的策略非常简单,这让我怀疑这是最慢的方式......
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
其他想法?
提前感谢您的智慧!