Pessoal, eu fiz o programa que resolve o algoritmo da torre de hanoi, mas fiz em uma classe so. Gostaria d saber c da pra dividi esse programa em + classes menores. Alguem pd me ajuda ??
Segue o font.
[code]
// Hanoi.java
/*
- Programa que usa recursao pra faze o algoritmo
- da Torre de Hanóis
*/
/**
-
@utor : Cassolato
*/
import javax.swing.;
import java.awt.;
import java.awt.event.*;
public class Hanoi extends JFrame implements ActionListener {
public JTextArea area;
public JScrollPane barra;
public JLabel lNDiscos, lOrigem, lDestino, lUso, lSaida,
lEspaco, lEspaco1;
public JTextField fNDiscos, fOrigem, fDestino, fUso;
public JButton bCalcular;
long nDiscos, origem, destino, uso;
public Hanoi() {
setDefaultCloseOperation( EXIT_ON_CLOSE );
setTitle( “Torre de Hanói” );
setLayout( new FlowLayout() );
setSize( 200, 370 );
setResizable( false );
Container c = getContentPane();
// Botao de Confirmacao
bCalcular = new JButton( " Calcular " );
bCalcular.addActionListener( this );
// Area de Saida
area = new JTextArea( 10, 6 );
area.setEditable( false );
barra = new JScrollPane( area );
// JLabels
lNDiscos = new JLabel( "Número de Discos " );
lOrigem = new JLabel( "Nº Torre de Origem ");
lDestino = new JLabel( "Nº Torre de Destino " );
lUso = new JLabel( "Nº Torre de Uso " );
lSaida = new JLabel( "Movimentações" );
lEspaco = new JLabel( " " );
lEspaco1 = new JLabel( " " );
// JTextFields
fNDiscos = new JTextField( 3 );
fOrigem = new JTextField( 3 );
fDestino = new JTextField( 3 );
fUso = new JTextField( 3 );
c.add( lNDiscos );
c.add( fNDiscos );
c.add( lOrigem );
c.add( fOrigem );
c.add( lDestino );
c.add( fDestino );
c.add( lUso );
c.add( fUso );
c.add( lEspaco );
c.add( bCalcular );
c.add( lEspaco1 );
c.add( lSaida );
c.add( barra );
setVisible( true );
}
if( continua == 4 )
System.exit(0);
//Teste();
else
System.exit( 0 );
public void actionPerformed( ActionEvent e ) {
nDiscos = ( Integer.parseInt( fNDiscos.getText() ) );
origem = ( Integer.parseInt( fOrigem.getText() ) );
destino = ( Integer.parseInt( fDestino.getText() ) );
uso = ( Integer.parseInt( fUso.getText() ) );
MoverTorre( nDiscos, origem, destino, uso );
}
public void MoverTorre( long altura, long de, long para, long uso ) {
if( altura > 0 ) {
MoverTorre( altura - 1, de, uso, para );
MoverDisco( de, para );
MoverTorre( altura - 1, uso, para , de );
}
}
public void MoverDisco( long origem, long destino ) {
area.append( origem + " -> " + destino + “\n” );
}
public static void main( String[] args ) {
new Hanoi();
}
}[/code]
Desde ja agradeco!
Abracao e te + :razz: