Ga naar hoofdinhoud

Bouwsteen 1 — één zet

Hier bouw je op verder

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):
...
  • n is het aantal schijven;
  • bron is de paal waar de stapel nu staat;
  • doel de paal waar hij heen moet;
  • hulp de 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

Python
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 →.