如何在一个2D数组中搜索另一个?

时间:2019-07-06 06:13:38

标签: python numpy matrix multidimensional-array

我有一个1和0的数组,我想删除并阻塞全为1的2x2区域。

我尝试按代码中所示进行循环,但这不起作用。

def removeblocks(maze):
  for i in range(len(maze)-1):
    for j in range(len(maze)-1):
      arg=[]
      a=maze[i][j]
      b=maze[i+1][j]
      c=maze[i][j+1]
      d=maze[i+1][j+1]
      if a==b==c==d==1:
        arg.append((i,j))
        arg.append((i+1,j))
        arg.append((i,j+1))
        arg.append((i+1,j+1))
        tempmaze=copy.copy(maze)
        while len(arg)>0:
          choice=rd.choice(arg)
          arg.remove(choice)
          tempmaze[choice[0]][choice[1]]=0
          if checksolvable(tempmaze):
            break
          else:
            tempmaze[choice[0]][choice[1]]=1
  return tempmaze

代码应对此进行更改:

1 1
1 1

对此(其他1都可以删除)

0 1
1 1

但是相反,仅更改了一些块,这使我相信循环是问题所在。

0 个答案:

没有答案