CSCI 150, Spring 2003
Home | | Course Schedule | | Assignments | | Lecture NotesHomework 6 solution
{Author: Brenda Student Section: CSCI 150, Section 1 Date: October 18, 2001 Assignment: Homework 6 Purpose: Print out instructions to solve the Tower of Hanoi Puzzle} program puzzle; {Procedure moveRing() moves a ring from one peg to another } procedure moveRing(ring : integer; fromPeg : char; toPeg : char); begin writeln('Move ring ', ring, ' from peg ', fromPeg, ' to peg ', toPeg, '.'); end; {end moveRing} {Procedure Hanoi() recursively solves the Tower of Hanoi puzzle for n rings} procedure Hanoi(number: integer; source : char; dest : char; spare : char); begin if number = 1 then begin moveRing(1, source, dest); end else begin Hanoi(number - 1, source, spare, dest); moveRing(number, source, dest); Hanoi(number - 1, spare, dest, source); end; end; {end of Hanoi } var numberOfRings : integer; {number of rings in Tower} begin writeln('How many rings in the tower?'); readln(numberOfRings); Hanoi(numberOfRings, 'A', 'B', 'C'); end. {end of puzzle program}