##

###

    Towers of HanoiBy E.Hooijmeijer1 Inleiding

      Volgens een eeuwen oude legende hangt het lot van de wereld van deze puzzel af. Ergens in Azië
      is er een tempel waar priesters bezig zijn met een versie met 64 schijven. Als ze klaar zijn met
      hun werk, zal de wereld vergaan.

      Als de priesters stug doorgaan om het einde van de wereld te veroorzaken, en daarbij de
      snelste oplossing gebruiken, en als ze om de seconde een schijf verplaatsen, dan zijn ze nog steeds
      2^64-1 seconde bezig, ruwweg zo'n 585 miljard jaar. De priesters zijn dus wel nog even bezig :-)

    2 Opdracht

      Implementeer in de klasse TowersOfHanoiImpl de methode 'public void solve(HanoiPuzzle hp)'
      welke de gegeven HanoiPuzzle tot een goed einde moet zien te brengen. In de start positie
      staan alle schijven op de meest linker (source) paal. De bedoeling is om ze allemaal naar
      de rechter (target) paal te verplaatsen. Hierbij mag je :
      - maar 1 schrijf tegelijkertijd verplaatsen.
      - geen schrijf die groter is plaatsen bovenop een kleinere.
      - een oplossing vinden in minder dan 2^n zetten, waarbij n het aantal schijven is.

    3 Voorbeeld

        |  |  |    |  |  |   |  |  |    |  |  |
        #  |  |    |  |  |   |  |  |    |  |  #
       ### |  |   ### #  |   |  # ###   |  | ###
      ---------- ---------- ---------- ----------

    4 Tips

      - 'De Torens van Hanoi' is een klassieke puzzel die recursief efficient is op te lossen.
      - Als je de HanoiPuzzle naar de standaard uitvoer print krijg je de huidige staat
        van de puzzel te zien.
      - Als je over het maximaal aantal zetten heen gaat stopt de puzzel vanzelf.

    Test case 1 : Hanoi #1
    Move the 2 disks from the left to the right tower:
    - Move only one disk at a time.
    - Bigger disks cannot lie upon smaller disks.
    - Maximum number of moves is 3

    Starting position :
     ##  ||  ||
    #### ||  ||

    Wanted Result :
     ||  ||  ##
     ||  || ####

    Test case 2 : Hanoi #2
    Move the 3 disks from the left to the right tower:
    - Move only one disk at a time.
    - Bigger disks cannot lie upon smaller disks.
    - Maximum number of moves is 7

    Starting position :
      ##    ||    ||
     ####   ||    ||
    ######  ||    ||

    Wanted Result :
      ||    ||    ##
      ||    ||   ####
      ||    ||  ######

    Test case 3 : Hanoi #3
    Move the 4 disks from the left to the right tower:
    - Move only one disk at a time.
    - Bigger disks cannot lie upon smaller disks.
    - Maximum number of moves is 15

    Starting position :
       ##      ||      ||
      ####     ||      ||
     ######    ||      ||
    ########   ||      ||

    Wanted Result :
       ||      ||      ##
       ||      ||     ####
       ||      ||    ######
       ||      ||   ########