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.
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.
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.
1
2
3
Jumlah Langkah = Sumber Bantuan Tujuan
2.
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 ~~
Sempurna
BalasHapusEror
BalasHapus