|
import random
def confict(state,nextX):
nextY=len(state)
for i in range(nextY):
if abs(state[i]-nextX) in (0,nextY-i):
return True
def queens(num=8,state=()):
for pos in range(num):
if not confict(state,pos):
if len(state)==num-1:
yield(pos,)--------------------------------------------------前面三个为(1,3,0),最后一个符合条件的为2, yield(pos,)执行这一步就终止了,单独返回(2,)怎么会把2合入到元组中,变成(1,3,0,2)?
else:
for result in queens(num,state+(pos,)):
yield (pos,) + result
|
|