0 or m >= A or n < 0 or n >= A or X[m][n] != 0:
return next(cur_zf) #如果超出了棋盘的大小,则取下一个走法
else:
#print [m, n, -1]
return [m, n, -1]
count = 0
while True:
count = count + 1
last = finish[-1]
node = next(last)
if node == None:
X[last[0]][last[1]] = 0 #未使用
finish.pop()
#print 'pop',last
if len(finish) <= 0:
print 'over'
break
else:
X[node[0]][node[1]] = 1 #已使用
finish.append(node)
#print 'append',node
if len(finish) == A * A:
print 'ok'
print finish
break
print 'count = %d' % count
print '费时%f秒' % (time.clock() - start)
