Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def move(num_disks, start=0, target=2, using=1)
- if num_disks == 1
- @towers[target] << @towers[start].pop
- puts "Move disk from #{tower_name(start)} to #{tower_name(target)} : #{@towers}"
- else
- move(num_disks-1, start, using, target)
- move(1, start, target, using)
- move(num_disks-1, using, target, start)
- end
- end
- n = 10
- @towers = [[*1..n].reverse, [], []]
- puts "#{(2**n) - 1} moves"
- move(n)
Add Comment
Please, Sign In to add comment