Computer Science‎ > ‎

## Towers of Hanoi

# Move X discs from Peg 1 to Peg 2 using Peg 3 as a backup Peg
# At no point of time should you place a bigger disc on top of a smaller disc

# Algorithm to move X discs from A to B via C
# Move X-1 disc from A to C
# Move last disc (X-th disc) from A to B
# Move X-1 discs from C to B

`def movePegs(number_of_discs,from,to,via)`
`if (number_of_discs == 1)`
`puts "Move Disc from peg #" + from.to_s + " to peg #" + to.to_s`
`else`
`movePegs(number_of_discs - 1, from,via,to)`
`movePegs(1,from,to,via)`
`movePegs(number_of_discs - 1, via,to,from)`
`end`
`end`

`number_of_discs = gets().to_i`
`movePegs(number_of_discs,1,2,3)`

Check out some of our other Ruby Tutorials :

## Introduction to Ruby

 Introduction to Ruby and some playing around with the Interactive Ruby Shell (irb) Introduction to Ruby - Conditional statements and Modifiers: If-then, Unless, Case Introduction to Ruby Comments - Single and Multi-Line comments Introduction to Ruby Loops - Using While, Until, For, Break, Next , Redo, Retry Introduction to Ruby - Arrays - Sorting, Filtering (Select), Transforming, Multi-Dimensional Arrays Introduction to Ruby - Strings Introduction to Ruby - Making a Script Executable Introduction to Ruby - Regular Expressions, Match, Scan Introduction to Ruby - Computing Factorials Recursively : An Example of Recursion Introduction to Ruby - Binomial Coefficients (nCr) : An Example of Recursion Introduction to Ruby - Computing a Power Set : An Example of Recursion Introduction to Ruby - Towers of Hanoi : An Example of Recursion Introduction to Ruby - Strings: Substitution, Encoding, Built-In Methods

## Basic Data Structures With Ruby

 Basic Data Structures in Ruby - Insertion Sort Basic Data Structures in Ruby - Selection Sort Basic Data Structures in Ruby - Merge Sort Basic Data Structures in Ruby - Quick Sort Functional Programming with Ruby Basic Data Structures in Ruby - Stack Basic Data Structures in Ruby - The Queue Basic Data Structures in Ruby - Linked List - ( A Simple, Singly Linked List) Basic Data Structures in Ruby - Binary Search Tree