Towers of Hanoi: Difference between revisions

Content added Content deleted
(Add NetRexx implementation)
m (move Nimrod to correct position in collating sequence)
Line 1,253: Line 1,253:
}
}
}</lang>
}</lang>

=={{header|Nimrod}}==
<lang Python>proc hanoi(disks: int, fromTower: string, toTower: string, viaTower: string) =
if disks != 0:
hanoi(disks - 1, fromTower, viaTower, toTower)
echo("Move disk ", disks, " from ", fromTower, " to ", toTower)
hanoi(disks - 1, viaTower, toTower, fromTower)
hanoi(4, "1", "2", "3")</lang>
{{out}}
<pre>Move disk 1 from 1 to 3
Move disk 2 from 1 to 2
Move disk 1 from 3 to 2
Move disk 3 from 1 to 3
Move disk 1 from 2 to 1
Move disk 2 from 2 to 3
Move disk 1 from 1 to 3
Move disk 4 from 1 to 2
Move disk 1 from 3 to 2
Move disk 2 from 3 to 1
Move disk 1 from 2 to 1
Move disk 3 from 3 to 2
Move disk 1 from 1 to 3
Move disk 2 from 1 to 2
Move disk 1 from 3 to 2</pre>


=={{header|NetRexx}}==
=={{header|NetRexx}}==
Line 1,308: Line 1,283:
return moves
return moves
</lang>
</lang>
{{out}}
'''Output:'''
<pre>
<pre>
Minimum moves to solution: 15
Minimum moves to solution: 15
Line 1,337: Line 1,312:


(move 4 1 2 3)</lang>
(move 4 1 2 3)</lang>

=={{header|Nimrod}}==
<lang Python>proc hanoi(disks: int, fromTower: string, toTower: string, viaTower: string) =
if disks != 0:
hanoi(disks - 1, fromTower, viaTower, toTower)
echo("Move disk ", disks, " from ", fromTower, " to ", toTower)
hanoi(disks - 1, viaTower, toTower, fromTower)
hanoi(4, "1", "2", "3")</lang>
{{out}}
<pre>Move disk 1 from 1 to 3
Move disk 2 from 1 to 2
Move disk 1 from 3 to 2
Move disk 3 from 1 to 3
Move disk 1 from 2 to 1
Move disk 2 from 2 to 3
Move disk 1 from 1 to 3
Move disk 4 from 1 to 2
Move disk 1 from 3 to 2
Move disk 2 from 3 to 1
Move disk 1 from 2 to 1
Move disk 3 from 3 to 2
Move disk 1 from 1 to 3
Move disk 2 from 1 to 2
Move disk 1 from 3 to 2</pre>


=={{header|Objective-C}}==
=={{header|Objective-C}}==