#!/usr/bin/env swift; /****************************************************************************** * This program solves the Tower of Hanoi * * Copyright © 2021 Richard Lesh. All rights reserved. *****************************************************************************/ import Foundation import Utils var numDisks:Int = 0 var pegs:[[Int]?] = Array(repeating: nil, count: 3) var moveNumber:Int = 0 var printMod:Int = 1 func printPegs() -> Void { print("Move: " + String(moveNumber)) for i:Int in 0.. Void { moveNumber += 1 var disk:Int = 0 for i:Int in 0.. Void { if numDisks == 1 { move(source, dest) } else { solve(numDisks - 1, source, aux, dest) move(source, dest) solve(numDisks - 1, aux, dest, source) } } func main() -> Void { if CommandLine.arguments.count != 2 { print("Syntax: " + CommandLine.arguments[0] + " [disks]") exit(1) } numDisks = Int(CommandLine.arguments[1]) ?? 3 for i:Int in 0..<3 { var positions:[Int] = [] for _:Int in 0..