Towers of Hanoi: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add APL) |
(Added Wren) |
||
Line 5,685: | Line 5,685: | ||
End Sub |
End Sub |
||
End Module</lang> |
End Module</lang> |
||
=={{header|Wren}}== |
|||
{{trans|Kotlin}} |
|||
<lang ecmascript>class Hanoi { |
|||
construct new(disks) { |
|||
_moves = 0 |
|||
System.print("Towers of Hanoi with %(disks) disks:\n") |
|||
move(disks, "L", "C", "R") |
|||
System.print("\nCompleted in %(_moves) moves\n") |
|||
} |
|||
move(n, from, to, via) { |
|||
if (n > 0) { |
|||
move(n - 1, from, via, to) |
|||
_moves = _moves + 1 |
|||
System.print("Move disk %(n) from %(from) to %(to)") |
|||
move(n - 1, via, to, from) |
|||
} |
|||
} |
|||
} |
|||
Hanoi.new(3) |
|||
Hanoi.new(4)</lang> |
|||
{{out}} |
|||
<pre> |
|||
Towers of Hanoi with 3 disks: |
|||
Move disk 1 from L to C |
|||
Move disk 2 from L to R |
|||
Move disk 1 from C to R |
|||
Move disk 3 from L to C |
|||
Move disk 1 from R to L |
|||
Move disk 2 from R to C |
|||
Move disk 1 from L to C |
|||
Completed in 7 moves |
|||
Towers of Hanoi with 4 disks: |
|||
Move disk 1 from L to R |
|||
Move disk 2 from L to C |
|||
Move disk 1 from R to C |
|||
Move disk 3 from L to R |
|||
Move disk 1 from C to L |
|||
Move disk 2 from C to R |
|||
Move disk 1 from L to R |
|||
Move disk 4 from L to C |
|||
Move disk 1 from R to C |
|||
Move disk 2 from R to L |
|||
Move disk 1 from C to L |
|||
Move disk 3 from R to C |
|||
Move disk 1 from L to R |
|||
Move disk 2 from L to C |
|||
Move disk 1 from R to C |
|||
Completed in 15 moves |
|||
</pre> |
|||
=={{header|XPL0}}== |
=={{header|XPL0}}== |