import java.util.Stack;

public class Hanoi {

    protected static Turm[] tuerme = new Turm[3];

    public static void main(String[] args) {
    createHanoi(3);
    }
    public static void createHanoi(int groesse) {
        for (int i = 0; i < 3; i++) {
            tuerme[i] = new Turm();
        }
        for (int i = groesse; i > 0; i--) {
            tuerme[0].addScheibe(new Scheibe(i));
        }
        Visualizer.visualisiereTuerme();
        solveHanoi(groesse, 0, 1, 2);
    }

    private static void solveHanoi(int n, int source, int auxiliary, int destination) {
        if (n == 1) {
            tuerme[destination].addScheibe(tuerme[source].removeScheibe());
            Visualizer.visualisiereTuerme();
            return;
        }
        solveHanoi(n - 1, source, destination, auxiliary);
        tuerme[destination].addScheibe(tuerme[source].removeScheibe());
        Visualizer.visualisiereTuerme();
        solveHanoi(n - 1, auxiliary, source, destination);
    }

    protected static int findeHoechsteAnzahlScheiben() {
        int max = 0;
        for (Turm turm : tuerme) {
            int turmGroesse = turm.getScheiben().size();
            if (turmGroesse > max) {
                max = turmGroesse;
            }
        }
        return max;
    }

}

