Skip to content

Instantly share code, notes, and snippets.

@pragmaticlogic
Created October 19, 2014 15:56
Show Gist options
  • Select an option

  • Save pragmaticlogic/87ddbe8d539bb198430e to your computer and use it in GitHub Desktop.

Select an option

Save pragmaticlogic/87ddbe8d539bb198430e to your computer and use it in GitHub Desktop.
Tower of Hanoi in Swift - recursive version
//By Kevin Le
//10-19-2014
enum Tower : String {
case Tower1 = "Tower 1"
case Tower2 = "Tower 2"
case Tower3 = "Tower 3"
}
func tower(#numberOfDisks: Int, source x: Tower, dest y: Tower, temp z: Tower) {
if (numberOfDisks > 0) {
tower(numberOfDisks: numberOfDisks - 1, source:x, dest:z, temp:y)
println("Move disk \(numberOfDisks) from \(x.toRaw()) to \(y.toRaw())")
tower(numberOfDisks: numberOfDisks - 1, source:z, dest:y, temp:x)
}
}
println("3 disks")
tower(numberOfDisks:3, source:.Tower1, dest:.Tower3 , temp:.Tower2)
println("--------")
println("4 disks")
tower(numberOfDisks:4, source:.Tower1, dest:.Tower3 , temp:.Tower2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment