Ich versuche ein Programm zu schreiben, um die N Queens Puzzle zu lösen. Ich erhalte den Fehler name 'FindPosition' is not defined
, wenn der Code versucht, FindPosition(finalArray, startArray)
rekursiv aufzurufen. Wie rufe ich die Funktion richtig auf?Rekursive Funktion ist nicht in sich selbst definiert
class TheQueensAlgoritm():
def FindPosition(finalArray, startArray):
if len(startArray)==0:
print(finalArray)
return
else:
startIndex = 0
while startIndex <= len(startArray):
finalIndex = len(finalArray) - 1
while finalIndex >= 0:
if (not(startArray[startIndex] == finalArray[finalIndex] - finalIndex + startIndex) and not(startArray[startIndex] == finalArray[finalIndex] + finalIndex - startIndex)):
finalIndex = finalIndex - 1
else:
break
finalArray.append(startArray[startIndex])
startArray.remove(finalArray[-1])
FindPosition(finalArray, startArray)
startIndex = startIndex + 1
startArray.append(finalArray[-1])
finalArray.remove(startArray[-1])
FindPosition(finalArray, startArray)
startArray = []
finalArray = []
boardSize = input("Type the size of the board = ")
boardSize = int(boardSize)
for i in range (0, boardSize):
startArray.append(i)
finalArray.append(startArray[random.randint(0,boardSize-1)])
startArray.remove(finalArray[0])
FindPosition(finalArray, startArray)
Warum haben Sie einen Kurs gemacht? – user2357112
Ich weiß nicht, löschte es das Problem gelöst! Danke – Paier