c#8x8网格并找到相邻的匹配符号

问题描述 投票:0回答:1

好的,说你有一个像这样的网格

xxxxSxxx
xxxxSSxx
xxxSSSxx
xxSSxSSx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx

其中x是不匹配的相邻符号,而S是匹配的符号一个人将如何找到匹配的人?知道他们的搭配很好吗?我曾想过要从左上角到顶部下角比较右侧和底部相邻,但这在下降然后向左匹配时成为问题。任何指导都非常适用。可以有多个群集,并且只有在有一定数量的群集时,它的计数才像5+ adajcent,否则忽略

c# .net grid match
1个回答
0
投票
完成后。在新矩阵中具有1的位置就是在旧矩阵中具有s的位置。

编辑:评论中新问题的解决方案。

创建新的2D网格。遍历旧的,然后从您尚未触摸(未访问)的每个单元开始,从中搜索BFS。仅将BFS展开为符号与开始此BFS搜索的单元格相同的单元格。当您访问一个单元格时,请在该单元格中标记其在BFS搜索中的位置。例如,如果这是您的第三次BFS搜索。在新矩阵中标记出您访问过的每个元素的位置,并以此进行BFS搜索。

[当您开始每个BFS搜索时,请保留您到目前为止已经访问了多少个元素的计数。当他们超过阈值时,您就拥有了。将BFS的编号放入数组或获胜者。完成后就这样。您转到此向量,其中的每个数字都是超过您所拥有阈值的一组符号。

例如,您在向量中看到3,并且您想知道簇号3的位置,您可以转到新的2D网格以查找第一个元素号为3的元素,并从中开始BFS搜索以知道它的位置朋友们。

© www.soinside.com 2019 - 2024. All rights reserved.