Program Pascal Menara Hanoi

  Hai sist/gan kembali lagi di blog gue, Disini gue mau bantu buat yang kesulitan mencari codingan Menara Hanoi langsung aja cekibrooooottt.....!!!! 
PASCAL IDE.

Program Menara_Hanoi;
Uses Crt;
Procedure MenaraHanoi
(Jumlah : Integer;
 Sumber, Tujuan, Bantuan : Char;
 Var Langkah, Jumlah_A, Jumlah_B, Jumlah_C, Waktu : Integer);

Var
Baris_Sumber, Kolom_Sumber, Baris_Tujuan, Kolom_Tujuan : Integer;

Begin

If Jumlah > 0 Then
Begin
MenaraHanoi(Jumlah-1,Sumber,Bantuan,Tujuan,Langkah,Jumlah_A,Jumlah_B,Jumlah_C,Waktu);
Langkah := Langkah+1;

        If Sumber = 'A' Then
        Begin
             Kolom_Sumber := 30;
             Baris_Sumber := 24 - Jumlah_A;
             Jumlah_A     := Jumlah_A - 1;
       End
       Else
        If Sumber = 'B' Then
        Begin
             Kolom_Sumber := 40;
             Baris_Sumber := 24 - Jumlah_B;
             Jumlah_B     := Jumlah_B - 1;
       End
       Else
        Begin
             Kolom_Sumber := 50;
             Baris_Sumber := 24 - Jumlah_C;
             Jumlah_C     := Jumlah_C - 1;
       End;
        If Tujuan = 'A' Then
        Begin
         Kolom_Tujuan := 30;
         Jumlah_A     := Jumlah_A + 1;
         Baris_Tujuan := 24 - Jumlah_A;
       End
       Else
        If Tujuan = 'B' Then
        Begin
         Kolom_Tujuan := 40;
         Jumlah_B     := Jumlah_B + 1;
         Baris_Tujuan := 24 - Jumlah_B;
       End
       Else
        Begin
         Kolom_Tujuan := 50;
         Jumlah_C     := Jumlah_C + 1;
         Baris_Tujuan := 24 - Jumlah_C;
    End;

Delay(Waktu*1000);
GotoXY(Kolom_Sumber, Baris_Sumber); Write('   ');
GotoXY(Kolom_Tujuan, Baris_Tujuan); Write(Jumlah);
GotoXY(18, 24); Write(Langkah);

MenaraHanoi(Jumlah-1,Bantuan,Tujuan,Sumber,Langkah,Jumlah_A,Jumlah_B,Jumlah_C,Waktu);
End;
End;

Var
Jumlah, Langkah, I, Baris, Jumlah_A, Jumlah_B, Jumlah_C, Waktu : Integer;
Sumber, Bantuan, Tujuan : Char;
Begin
Clrscr;
TextColor(Green); Write('Jumlah Piringan ?');
Readln(Jumlah);
TextColor(Green); Write('Waktu pemindahan (0-5) detik ?');
Readln(Waktu);

Clrscr;
GotoXY(25,24);Textcolor(2); Writeln('  Sumber    Bantuan     Tujuan ');
For I := Jumlah Downto 1 Do
Begin
Baris := 23 - (Jumlah - I);
GotoXY (30, Baris); Writeln(I);
End;

Langkah     := 0;
Sumber      := 'A';
Bantuan     := 'B';
Tujuan      := 'C';
Jumlah_A    := Jumlah;
Jumlah_B    := 0;
Jumlah_C    := 0;

GotoXY(1,24); Writeln('Jumlah Langkah = ');
MenaraHanoi(Jumlah, Sumber,Tujuan,Bantuan,Langkah,Jumlah_A,Jumlah_B,Jumlah_C,Waktu);
Readln;
End.



Output :

Jumlah Piringan ?3
Waktu pemindahan (0-5) detik ?3

1.

                    1
                                                 2
                                                 3
Jumlah Langkah =                 Sumber                                 Bantuan               Tujuan


2.

                                                  2
                                                  3                                                                       1
Jumlah Langkah = 1               Sumber                                Bantuan               Tujuan


3.

                                                               
                                                  3                                           2                          1
Jumlah Langkah = 2               Sumber                                Bantuan               Tujuan


4.

                                                                                               1
                                                   3                                          2
Jumlah Langkah = 3                Sumber                               Bantuan               Tujuan


5.

                                                                                                1
                                                                                                2                          3

Jumlah Langkah = 4                Sumber                                Bantuan               Tujuan


6.


                                                   1                                           2                          3
Jumlah Langkah = 5                Sumber                                Bantuan               Tujuan


7.

                                                                                                                            2
                                                   1                                                                       3
Jumlah Langkah = 6                Sumber                                Bantuan               Tujuan


8.

                                                   1
                                                                                                                           2
                                                                                                                           3
Jumlah Langkah = 7               Sumber                                Bantuan               Tujuan



Terimakasih telah ngunjungin blog gue sering sering ya.... mampir sembari ngopi santai  kita ~~

Komentar

Posting Komentar

Postingan populer dari blog ini

Program Pascal Menghitung Luas dan Keliling Lingkaran

Program Pascal Luas Bangun Datar