Bouwsteen 1 — één zet
Hier bouw je op verder
- Python Functies
- Python Return-waarden
- Python Lijsten
- Python Tuples
Leerdoel: je kiest hoe je een zet voorstelt, en schrijft het allerkleinste geval: één schijf verplaatsen.
Een zet voorstellen
Een zet is niet meer dan "van paal X naar paal Y". Dat sla je op als een
tuple (bron, doel). De hele oplossing wordt straks een lijst van zulke
tuples.
("A", "C") # verplaats de bovenste schijf van paal A naar paal C
De functie
Je bouwt toe naar deze functie:
def hanoi(n, bron, doel, hulp):
...
nis het aantal schijven;bronis de paal waar de stapel nu staat;doelde paal waar hij heen moet;hulpde derde paal, om tijdelijk schijven op te parkeren.
Begin met het kleinste echte geval, n == 1. Eén schijf gaat rechtstreeks
van bron naar doel, in één zet.
Bouw en test
Code-omgeving wordt voorbereid…
Antwoord
def hanoi(n, bron, doel, hulp):
return [(bron, doel)]
Eén zet, in een lijst. Je gebruikt bron en doel, zodat het ook klopt
als de palen anders heten: hanoi(1, "A", "B", "C") geeft [("A", "B")].
Door naar het basisgeval →.