求教如何在矩阵图形中找到按规则生成的图形?
各位版主大大及过往高手:目前遇到一种问题无法解决,不知道如何下手,完全想不出开发方向与解决步骤。我先介绍一下背景与需求:
1、 现有一个文本,里面每行有三个数字,第一个数字为X坐标,第二个数字为Y坐标,第三个数字是这个坐标点的好坏性质(可以粗略认为1是好的,除去1以外的数字都是坏的);
2、 我根据坐标生成一个矩阵图形,里面只有1和B;
3、 现要求先确定一个数字N,在矩阵图形中寻找N个及N个以上的连续连接的B,
如何定义是不是连续连接,我的理解为以一个B为中心生成九宫格,如果上下左右斜上斜下周围8个格子中任意一个格子中是B,那么判定这两个B是连接的;再以第二个B为中心生成九宫格,下左右斜上斜下周围8个格子中任意一个格子中(除去前一个B的格子)是B,则判定有3个B是连续连接的;如果以第二个B为中心生成九宫格,下左右斜上斜下周围8个格子中任意一个格子中(除去前一个B的格子)都不是B,则判断这个连续断了。以此类推,计算最终连续了几个,是否达到N或者N个以上的要求;
4、 如果一个B的连续达到N或者N个以上的要求,那么这个B的连续中每一个B点周边8个位置中如果是1的,则将1转变成Q;
5、 再输出成原来大小的矩阵图形,如果里面有连续达到N或者N个以上B的要求,则最终输出成包含1、B、Q的原来大小的矩阵图形。
我最初的想法是先计算出到底有多少个不同的N个连接的B的组合,然后到矩阵图形中一组一组的匹配,动手没多久就发现这样做不现实,
1、 要求是N个及N个以上,我的想法只能达到最初要求的N个,那么N+1、N+2、N+3……N个以上都没有做到;
2、 N个连接B的组合,每增加一个连续,图形总数量就成指数级的增加,比如4个连续,大约100多种组合,5个连续就变成了600多种组合,6个连续就变成了3800多种组合,7个连续就变成了2万多种组合了……实在是没法算下去了。
到现在实在没有头绪,完全不知道怎么制作,还请各位版主大大及过往高手能够不吝赐教,协作制作!
附件是根据文本中坐标生成矩阵的程序和坐标文本以及矩阵文本。
新建文件夹.rar
(9.62 KB)