我已将圆分为行和列,并且在圆中形成的每个块(正方形)具有相同的大小。我有每个方块/块的X和Y坐标。每个块都被定义为好或坏。
问题:我需要在同一行添加2个块,并确定结果是好还是坏。如果任何块都是坏的,则将两个块的组称为坏块。如果两者都很好,那么只有团体才是好的。它的算法是什么?我需要用视觉基础语言。另外,我需要做更多的情况,例如添加3个块并确定3个块的组是好还是坏。在这种情况下,如果任何阻止是坏的,整个组都是坏的。
更新:当我将圆分成行和列,即块时,我删除了不是方形的块。也就是说,删除那些接触圆周的方块/块。我现在可以上传这张照片了。
答案 0 :(得分:0)
如果你要添加两个,那么一个badBlock意味着两边都不好导致3个坏了
1)设置struct {bool inCircle,badBlock,badGroup;}的NxN数组 如果块在圆圈中,则inCircle为真,如果块为坏,则badBlock为真,并且最初badGroup为false。
3)
int length=2;
length--;
for (int i=0; i<N;i++)
for(int j=0; j<N;j++)
if(array[i,j].badBlock){
for(int x=-length;x<=length;x++)
if(i+x>=0 and i+x<N and array[i+x,j].inCircle) then array[i+x,j].badGroup=true;
for(int y=-length;y<=length;y++)
if(j+y>=0 and j+y<N and array[i,j+y].inCircle) then array[i,j+y].badGroup=true;
}