Difference between revisions of "CSC103 Towers of Hanoi in Javascript"
(Created page with "--~~~~ ---- <br /> <br /> <center>Image:AnimatedTowersOfHanoi.gif</center> <br /> <br /> __TOC__ =References= * [http://en.wikipedia.org/wiki/Tower_of_Hanoi Towers of Hanoi]...") |
(→References) |
||
Line 10: | Line 10: | ||
* [http://en.wikipedia.org/wiki/Tower_of_Hanoi Towers of Hanoi] on Wikipedia | * [http://en.wikipedia.org/wiki/Tower_of_Hanoi Towers of Hanoi] on Wikipedia | ||
− | * | + | * [http://mathworld.wolfram.com/TowerofHanoi.html Towers on Hanoi] on MathWorld.com |
+ | |||
=Code= | =Code= | ||
Revision as of 07:36, 28 February 2011
--D. Thiebaut 07:35, 28 February 2011 (EST)
Contents
References
- Towers of Hanoi on Wikipedia
- Towers on Hanoi on MathWorld.com
Code
<html><head><title>CSC103 Javascript Program</title></head>
<body>
<h1>N Queens Problem</h1>
<script language="JavaScript" type="text/javascript"><!--
//Enter your code below this line:
// This program illustrates how a very short program could take
// an extremely long time to run. The program prints out all the moves
// that are required to move N disks from one peg to another peg in the
// game of the Towers of Hanoi (http://en.wikipedia.org/wiki/Tower_of_Hanoi)
// The function moveNDisks is given a number in the variable N, which is the
// number of disks to move. It is also given the names of the 3 pegs it must
// use. The goal of the function is to move the N disks from the "fromPeg"
// and put them on the "toPeg" using the "extraPeg" as a temporary peg.
//
function moveNDisks( N, fromPeg, toPeg, extraPeg ) {
// if there's only one disk to move, then just print the move required
if ( N==1 )
document.write( "Move disk from Peg " + fromPeg + " to " + toPeg + "<br>" );
else {
// otherwise, then call the function to move N-1 disks out of the way...
moveNDisks( N-1, fromPeg, extraPeg, toPeg );
// then move 1 disk to the destination
moveNDisks( 1, fromPeg, toPeg, extraPeg );
// and the N-1 that were out of the way should be brought back
moveNDisks( N-1, extraPeg, toPeg, fromPeg );
}
}
// now, let's try a test case with 5 disks
moveNDisks( 5, "A", "B", "C" );
//Do not write below this line.
//-->
</script>
</body></html>