用python编一个数独程序,中间出了点问题,找到问题的代码在哪了,但是一直找不出问题来,求助!!
def delNum(self,x,y,num):
def callm(m,n,num,i):
print('There!',(m,n),num,i)
for i in range(9):
if x != i:
if num in self.m[i][y]:
callm(x,y,num,i)
self.m[i][y].remove(num)
if len(self.m[i][y])==1:
self.v[i][y]=num
for i in range(9):
if y != i:
if num in self.m[x][i]:
callm(x,y,num,i)
self.m[x][i].remove(num)
if len(self.m[x][i])==1:
self.v[x][i]=num
这是问题的代码片段,这是class中的片段,self.v是确定的值,self.m是可能的值,都是数组。
传入值中,x,y为该格子的位置,num为要删除的数
当某一格的值确定以后就调用这段代码,先纵向再横向地把self.m其他格子中的这个值删掉。
经过某些运算以后值为下面的
运算中被删掉的值与其位置在下面
问题就出现了,上面框中所示位置在(7,4) 3 4那里已经将(4,4)中的3删除了,(4,4)中只剩4一个值,怎么会查出这一列只有一个3??而且(7,3)中确定数为8,这里显示3??