تابعی که الگوریتم 8 وزیر را با موقعیت وزیر با 7 مهره بدون برخورد نشان دهد ( Eight Queens puzzle using backtracking )
q = [0] * 8
counter = 0
#==============<< isConsistent >>================
def isConsistent(n) :
for i in range (n) :
if q[i] == q[n] :
return False # Same Column
if q[i] - q[n] == n - i :
return False # Yeksani Movarab Asli
if q[n]- q[i] == n - i :
return False # Yeksani ghotr faree
return True
#=============<< PrintQueens >>=====================
def printQueens() :
global counter
print("[" + str(counter) + "]")
print()
for i in range (8) :
for j in range (8) :
if q[i] == j :
print("Q",end="")
else :
print("*",end="")
print()
print()
#=====================<< Enumerate >>==================
def enumerate(k) :
n = 8
if k == n :
printQueens()
else :
for i in range (0, n) :
q[k] = i
if isConsistent(k) :
enumerate(k+1)
#===============<< MAIN >>========================
enumerate(0)
- ۰۳/۱۲/۲۵