如果我必须遍历一个六边形单元格表,通过进行递归深度优先搜索来检查其中的文本,如图所示排列:[在StackOverflow上键入它显然不会保留格式。]
示例1:
示例2:
将它们识别为“细胞”的最佳方法是什么?换句话说,除了删除文本对角线并将其转换为仅包含数字的2D数组之外,在代码中告诉计算机识别x个特定数量的y字符的最佳方法类似于“单元格”? / p>
提前致谢。
答案 0 :(得分:1)
表示六边形网格的最简单方法是简单的二维数组,其中有关于单元格邻域的特殊规则。以第二种情况为例,以矩阵形式表示:
char M[][] =
{
{ 'b', 'g', 'g', 'b', ' ' },
{ 'g', ' ', 'B', 'B', 'B' },
{ 'g', 'B', ' ', 'b', 'g' },
{ 'B', ' ', 'g', 'g', 'g' }
}
行m
中的列n
中的元素是邻居:
m
m + 1
和n - 1
中的元素
m - 1
m + 1
和n
中的元素
m - 1
m
和n + 1
中的元素