Minggu, 16 Juni 2013

Membuat Menara Hanoi di Netbeans

Desain
 

package hanoi;
import java.io.FileOutputStream;
import java.io.PrintStream;
import javax.swing.JOptionPane;

public final class HanoiGui extends javax.swing.JFrame {

    /** Creates new form HanoiGui */
        static int moves = 0;
    static int totalDisks = 0;
        private String Pindah;
        int jumlah;
    public HanoiGui() {
        initComponents();
    
    }
   
public void test()  throws java.io.IOException{
    int disks = 0;
        char tiang1 = 'A';
        char tiang2 = 'B';
        char tiang3 = 'C';
                //char toZero ='D';
    String angka=textisi.getText();
    jumlah=Integer.parseInt(angka);
    totalDisks = jumlah;
        if(totalDisks > 10){
            jTextIsi.setText("Masih Dalam Proses.............\n");
            }
   FileOutputStream fos = new FileOutputStream("Hanoi.txt");
        PrintStream ps = new PrintStream(fos); // objek tempat informasi bisa dicetak
        solveHanoi(jumlah, tiang1, tiang2, tiang3, ps);
        ps.close();
       
                jTextIsi.append(" Jumlah Angka = "+ jumlah+"\n"+
                       "Hasil perpindahan  : "+ moves +"\n"+"Menara Hanoi Berpindah" +"\n"
                       + "Terima Kasih \n");
    }

public void solveHanoi(int disks, char tiang1, char tiang2, char tiang3,PrintStream ps) {
        if (disks >= 1) {
            solveHanoi(disks-1, tiang1, tiang3, tiang2,ps);
            moveDisk(tiang1, tiang2, ps);
            solveHanoi(disks-1, tiang3,tiang2, tiang1,  ps);
            }
        }

public void moveDisk(char tiang1, char tiang2,PrintStream ps) {
        moves++;
        if(totalDisks <= 30){
                        ps.print("Berpindah dari " + tiang1 + " ke " + tiang2 + ". "+"\n");
                       jTextIsi.append("Berpindah dari " + tiang1 + " ke " + tiang2 + ". "+"\n");
        }else{
                      ps.print("Berpindah dari " + tiang1 + " ke " + tiang2 + ". "+"\n");
                    jTextIsi.append("Berpindah dari " + tiang1 + " ke " + tiang2 + ". "+"\n");
                }
    }

private void textisiKeyTyped(java.awt.event.KeyEvent evt) {                                
       if (!Character.isDigit(evt.getKeyChar())) { // berfungsi untuk mengantisipasi input karakter, jika selain angka tidak bisa ditmpilkan
           evt.consume();

}
    }                               
public void enter(){
     String kesalahan=textisi.getText();
       if(kesalahan.length()==0){
           JOptionPane.showMessageDialog(null,"Field Kosong ","Information",JOptionPane.ERROR_MESSAGE);
       }else{

        try {
            test();
        } catch (Exception ex) {
           // Logger.getLogger(HanoiGui.class.getName()).log(Level.SEVERE, null, ex);
            JOptionPane.showMessageDialog(null,"Terjadi kesalahan karakter berlebih ","Information",JOptionPane.INFORMATION_MESSAGE);
        }
        }
}
    private void buttonmasukActionPerformed(java.awt.event.ActionEvent evt) {                                           
        enter(); // untuk mengeksekusi input
    }                                          

    private void buttonkeluarActionPerformed(java.awt.event.ActionEvent evt) {                                            
        JOptionPane.showMessageDialog(this, "Terima Kasih");
        System.exit(0); // untuk keluar dari program
    }                                           

    private void buttonkosongActionPerformed(java.awt.event.ActionEvent evt) {                                            
        jTextIsi.setText(" "); // untuk mengosongkan isi teks output
    }  

Hasil :
 

Artikel Terkait

1. Silahkan masukkan komentar
2. Berkomentar dengan kata-kata yang santun
3. Jangan menggunakan kata-kata kotor
4. Jika anda tidak suka dengan yang kami sajikan, lebih baik jangan di baca
5. Tinggalkan link web/blog anda agar admin bisa visit back
6. Jadilah pengunjung yang baik
7. Kami hanya memberikan informasi dari sumber-sumber yang bisa admin percaya.
8. Maaf jika ada salah satu artikel tidak ada sumbernya.
EmoticonEmoticon