#include "HanoiSimulatore.h"
#include <stdio.h>

unsigned int mosse=0;

// --- IL TUO ESERCIZIO RICORSIVO -------------------------------------
void Hanoi(int n, int da, int a, int appoggio) {

	// n==dischi, da == piolo partenza, a == piolo arrivo, appoggio = piolo appoggio
	// Caso base: se c'č solo 1 disco, lo sposti direttamente dal piolo di partenza a quello di arrivo
	
	mosse++;
	if (n == 1) {
		//MuoviDisco(da, a, appoggio);
		printf("Muovi un disco da %d a %d\n",da,a);
		return;
	}

	// 1. Sposta n-1 dischi dal piolo di partenza a quello di appoggio, usando l'arrivo come transito
	Hanoi(n - 1, da, appoggio, a);

	// 2. Muovi il disco pių grande rimasto sul piolo di partenza direttamente all'arrivo
	//MuoviDisco(da, a, 50);   // Richiamo grafica Hanoi.h
    printf("Muovi un disco da %d a %d\n",da,a);
	// 3. Sposta gli n-1 dischi dall'appoggio al piolo di arrivo definitivo, usando la partenza come transito
	Hanoi(n - 1, appoggio, a, da);
}
// --------------------------------------------------------------------


int main(void) {

	int dischi;
	printf("Quanti dischi ? ->"); // fino a un massimo di 8 per la grafica
	scanf("%d", &dischi);
	// Inizializza l'ambiente grafico con il numero di dischi scelto
//	InizializzaSimulazione(dischi);

	// Avvia il tuo algoritmo dicendo di muovere i dischi dal piolo 1 al piolo 3 usando il 2 come appoggio
	Hanoi(dischi, 1, 3, 2);
	printf("\n\nMosse fatte = %d\n",mosse);

	// Gestisce la chiusura finale e blocca la finestra per farti vedere il risultato
//	ChiudiSimulazione();

	return 0;
}
