import java.util.Scanner;

/**
 * Demonstration of a solution to the classic Tower of Hanoi problem
 * @author Hyrum D. Carroll
 * @version 0.2 (May 4, 2020)
 */
public class TowerOfHanoi{

    public static void towerOfHanoi( int n, String startingTower, String spareTower, String endingTower){

        if( n == 0 ){
            // we're done
            return;
        }

        // move n - 1 discs from startingTower to spareTower
        towerOfHanoi( n - 1, startingTower, endingTower, spareTower);

        // move the largest disc from startingTower to endingTower
        System.out.println("Move 1 disc from " + startingTower + " to " + endingTower);

        // move n - 1 discs from spareTower to endingTower
        towerOfHanoi( n - 1, spareTower, startingTower, endingTower);

    }

    public static void main( String[] args ){
        Scanner stdinScanner = new Scanner( System.in );
        int numDiscs = 0; // number of discs

        System.out.print( "Please enter the number of discs: " );
        numDiscs = stdinScanner.nextInt();
        String startingTower = "tower 1";
        String spareTower = "tower 2";
        String endingTower = "tower 3";


        towerOfHanoi( numDiscs, startingTower, spareTower, endingTower );










    }
}