Türme von Hanoi Python - Rekursion verstehen [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Turm von Hanoi: Rekursiver Algorithmus 24 Antworten

Ich bin völlig neu in Python und lerne gerade die Türme von Hanoi und die Rekursion kennen. Ich dachte, dass ich Rekursion verstehe, bis sie dieses Beispiel gaben:

def moveTower(height,fromPole, toPole, withPole):
    if height >= 1:
        moveTower(height-1,fromPole,withPole,toPole)
        moveDisk(fromPole,toPole)
        moveTower(height-1,withPole,toPole,fromPole)
    #print(withPole)

def moveDisk(fp,tp):
    print("moving disk from",fp,"to",tp)


moveTower(3,"A","B","C")

Dies druckt die korrekten Bewegungen zum Lösen der Türme des Hanoi-Problems mit 3 Scheiben: Bewegen der Scheibe von A nach B Bewegen der Scheibe von A nach C Bewegen der Scheibe von B nach C Bewegen der Scheibe von A nach B Bewegen der Scheibe von C nach A Bewegen der Scheibe von C nach B verschieben der Scheibe von A nach B

Meine Frage ist, wie geht das ?! könnte jemand die Codezeilen durchgehen, damit ich verstehe, wie es die richtigen Züge druckt? Ich bin hauptsächlich verwirrt, wie der Wert vonfp undtp kann sich ändern vonA zuB zuC. Tut mir leid, wenn dies etwas weiter gefasst ist! Jede Hilfe wäre sehr dankbar!

Antworten auf die Frage(5)

Ihre Antwort auf die Frage