Torre di Hanoi


















DA 1 2 3
A 1 2 3

funziona solo con i browser Chrome e Internet Explorer. Se si utilizza Internet Explorer, è necessario abilitare l'uso di finestre di prompt in strumenti -> opzioni internet -> protezione facendo una delle seguenti cose...
  • abbassare al minimo il livello di protezione per l'area Internet
  • (consigliato) cliccare su livello personalizzato e in esecuzione script selezionare attivare la voce consenti ai siti Web di richiedere informazioni mediante finestre di script
  • ... e poi ricaricare la pagina

    Istruzioni

    Le regole e lo scopo del gioco ve l'ho già spiegati qui. La torre inizialmente si trova sul terreno 1. Per spostare i dischi da un certo terreno a un altro, selezionate le caselle relative al terreno a fianco di "A" e "DA" e poi cliccate su sposta. resetta ripristinerà la torre nella posizione originaria. Con vedi soluzione la torre sarà riportata nella posizione iniziale e, per la gioia di Hanoi, verranno eseguiti con intervalli di un secondo tutti gli spostamenti necessari per portarla in posizione 2; se volete continuare voi prima cliccate su interrompi dimostrazione altrimenti se muovete un solo mattoncino l'algoritmo non se ne accorge e me lo incasinereste in modo oltraggioso. numero mosse serve a visualizzare il numero di spostamenti effettuati dall'apertura della pagina (compresi quelli della dimostrazione).

    Algoritmo risolutivo

    La soluzione è ricorsiva e estremamente banale; almeno da un punto di vista di comandi, poi sono affari del computer... Chiamiamo muovere la funzione da iterare, che necessita di quattro parametri: il numero n di blocchi da spostare, da quale postazione bisogna spostarli (diciamo a), dove bisogna metterli (diciamo b) e la terza postazione (c).

    se n=1, sposta un blocco da a a b (il che è anche ovvio no?)

    se n>1, muovi n-1 blocchi da a a c, sposta l'n-esimo da a a b e infine muovi n-1 blocchi da c a b

    Ovviamente in "muovi n-1 blocchi da a a c" il ruolo di b e c è invertito rispetto a quello che avevano nella prima invocazione della funzione. Noterete semplicemente che se rispettate l'ordine delle istruzioni ad ogni invocazione della funzione n si abbasserà di un'unità fino a farvi fare i primi spostamenti.








    battaglia navale

    (solo x Explorer senza blocco script)

    roulette

    (solo x Explorer)

    oroscopo