1 REM Ins{nd av Peter M|rtsell-Vince <1343>    1989-09-16 20.46.50 (DUMP)
Liten information om programmet "hanoi.bas"
===========================================

I Hanoi l{r det sitta munkar som flyttar brickor fr}n ett
"torn" till ett annat. N{r de flyttat 64 brickor s} g}r jorden
under. (de flyttar en bricka i timmen).

Brickorna kan naturligtvis inte flyttas hur som helst (d} vore det
ju ingen sport) utan de flyttas enligt vissa regler:

* Det finns tre torn

* Man kan bara flytta en bricka }t g}ngen fr}n ett torn till ett annat.

* Ingen "st|rre" bricka f}r ligga p} en "mindre".

  (I ursprungsh|gen ligger den st|rsta l{ngst ned och den minsta
  h|gst upp)


Teorin bakom programmet
=======================
N{r man b|rjar har man N brickor i h|g A (=torn 1) som alla ska
flyttas |ver till h|g B (=torn 3).
Eftersom den st|rsta brickan i h|g A ska ligga l{ngst ned i h|g B
m}ste man f|rst flytta |ver N-1 brickor till h|g C (=torn 2 i b|rjan).
Nu {r bottenbrickan frilagd, s} man flyttar den till h|g B.
Sedan flyttar man helt enkelt resten av brickorna fr}n C till B. (N-1).
F|r att flytta N-1 brickor anropas proceduren "inifr}n" (rekursivt).
Allt sker helt automatiskt, det {r enklare {n det verkar.

Programmets nytta
=================
Det kan t ex anv{ndas av stressade munkar som inte vill g} upp
mitt i natten bara f|r att flytta en bricka.
Programmet kan {ven anv{ndas som "avstressare", man s{tter ig}ng det
och tittar p} hur h|garna |kar och minskar.
Man kan {ven k|ra det av ren nyfikenhet, tex "hur l}ng tid tar det
att flytta en h|g med 15 brickor?" (f|rmodligen l}}}ng tid, f|r att
flytta en h|g med n brickor  kr{vs (n^2)-1 flyttningar.
Programmet har en begr{nsning p} 20 brickor, mest d{rf|r att
de flesta sk{rmar har 23-25 rader. (Om man anv{nder en 1600'a kan
man naturligtvis {ndra detta om man vill.Man b|r dock vara medveten
om tids}tg}ngen f|r att flytta en h|g med 50-60 brickor.)

Teknisk information
===================
Programmet {r skrivet s} att det (f|rhoppningsvis) fungerar med basicII.
Minneskrav: Eftersom programmet inneh}ller en rekursiv funktion
            {r det sv}rt att s{ga n}got om minnesbehovet.
            Sj{lv har jag inte r}kat ut f|r n}got proglem {n.
            Det reserverar plats f|r en matris 21*4 (20*3) (heltal)
            f|r att h}lla reda p} var brickorna {r.

<1343> Peter M|rtsell

---
Om problemet {r l|st f|r femtielfte g}ngen, uttjatat eller inaktuellt
kan det lagras i /dev/nul.
