Exercício de recursividade! Me ajudem não consigo resolve

Por favor me ajudem!!! Estou encalhado neste exercíco (Questão 6.37) de recursividade do livro Java Como Programar 4º Edição. Se alguém conseguir fazer postem o código por favor!!! Sou iniciante neste estudo de recursividade!!!

A questão é a seguinte:

(6.37) Todo novo cientista de computação deve lidar com certos problemas clássicos,e as Torres de Hanói é dos mais famosos desses problemas. Diz a lenda que, em um templo no Oriente, os sacerdotes estavam tentando mover uma pilha de discos de um pino para o outro. A pilha inicial tinha 64 discos sobrepostos em um pino e ordenados de baixo para cima por tamanho decrescente. Os sacerdotes tentavam mover a pilha desse para um segundo pino com as restrições de que apenas um disco podia ser movido por vez e em nenhum momento um disco maior podia ser colocado sobre um disco menor. Havia um terceiro pino disponível para
conter os discos temporariamente. Supostamente, o mundo acabaria quando os sacerdotes completassem a tarefa, portanto havia pouco incentivo para nós facilitarmos os esforços.

Vamos supor que os sacerdotes estivessem tentando mover os discos do pino1 para o pino3. Desejamos desenvolver um algoritmo que imprimirá a seqüência precisa de transferência de discos de um pino para outro.

Se abordássemos esse problema com métodos convencionais, rapidamente ficaríamos desesperados gerenciandoos discos. Em vez disso, se abordássemos o problema com a recursão em mente, ele
imediatamente se tornaria tratável. Mover n discos pode ser visualizado em termos de mover somente n-1 discos(e daí a recursão)como segue:

a)Mover n-1 discos do pino1 para o pino2, utilizando o pino3 como área de armazenamento
temporário.
b)Mover o último disco(O maior) do pino1 para o pino3.
c)Mover os n-1 discos do pino2 para o pino3, utilizando o pino1 como área de armazenamento
temporário.

O processo termina quando a última tarefa envolver mover n=1 disco(isto é, o caso básico). Essa tarefa é realizada movendo-se o disco diretamente sem a necessidade de uma área de armazenamento temporário.

Escreva um applet para resolver o problema das Torres de Hanói. Permita que o usuário digite o número de discos em JTextField. Utilize um método recursivo “tower” com 4 parâmetros:

a)O número de discos a serem movidos;
b)O pino em que esses discos inicialmente estão empilhados;
c)O pino para o qual essa pilha de discos deve ser movida;
d)O pino a ser utilizado como área de armazenamento temporário.

O programa deve exibir em uma JTextArea com funcionalidade de rolagem as instruções exatas necessárias para mover os discos do pino inicial para o pino de destino. Por exemplo, mover uma pilha de três discos do pino1 para o pino3, o programa deve imprimir a seguinte série
de movimentos:
1->3(significa mover um disco do pino1 para o pino3.)
1->2
3->2
1->3
2->1
2->3
1->3