Pages

Selasa, 21 Desember 2010

MENARA HANOI

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package MenaraHanoi;

import java.util.Scanner;
import javax.swing.JOptionPane;

/**
 *
 * @author bapake-aisyah
 */
public class MenaraHanoi {

    private int cakram;
    private String n = "";

    public MenaraHanoi(int cakram) {
        this.setCakram(cakram);
    }

    private MenaraHanoi() {
    }

    public void setCakram(int cakram) {
        this.cakram = cakram;
    }

    public int getCakram() {
        return cakram;
    }



    int i = 1;
    public void RekursiHanoi(int cakram, String asal, String bantu, String tujuan) {

        if (cakram == 1) {

            n += (i++)+". Pindahkan cakram ke-" + cakram + " dari " + asal + " ke " + tujuan + "\n";

        } else {

            this.RekursiHanoi(cakram - 1, asal, tujuan, bantu);

            n += (i++)+". Pindahkan cakram ke-" + cakram + " dari " + asal + " ke " + tujuan + "\n";

            this.RekursiHanoi(cakram - 1, bantu, asal, tujuan);

        }

    }

    public void tampil(int cakram, String asal, String bantu, String tujuan) {

        this.RekursiHanoi(cakram, asal, bantu, tujuan);
        System.out.println(n);
    }

    public static void main(String[] args) {

        MenaraHanoi menara = new MenaraHanoi();


        Scanner input = new Scanner(System.in);
        System.out.print("masukkan jumlah cakram : ");
        int cakram = input.nextInt();
        menara.setCakram(cakram);

        System.out.println("urutan sesuai langkah : ");

        menara.tampil(menara.getCakram(), "A", "B", "C");


    }
}

0 komentar:

Posting Komentar