Program
Tumpukan;
uses
wincrt;
type
ptrsimpul=^simpul;
simpul = record
Ni:integer;
Next : ptrsimpul;
end;
var
pertama,baru,kedua,ketiga,akhir,akhir1,akhir2:
ptrsimpul;
k,i,x1,x2,x3,y
: Integer;
pil:char;
label
lagi;
procedure
prosedur;
begin
gotoxy(5,3);writeln('PINDAHKAN
KOTAK DARI A KE C DENGAN SUSUNAN YANG SAMA');
gotoxy(5,20);write('
untuk melihat perpindahan permainan klik "ENTER"');
gotoxy(20,14);
write('A');
gotoxy(40,14);
write('B');
gotoxy(60,14);
write('C');
end;
procedure
welcome;
var
pass,a,x
: string;
begin
gotoxy(13,3);writeln('|---|
|---| |---| |---| |---| |---| |---| |---| |---| ');
gotoxy(13,4);writeln('|
G | | A | | M | | E | | S | | T | | A | | C | | K | ');
gotoxy(13,5);writeln('|---|
|---| |---| |---| |---| |---| |---| |---| |---| ');
gotoxy(27,10);writeln('
Sebelum memasuki permainan ini
');
gotoxy(25,11);writeln('
sebaiknya anda memasukkan identitas anda. ');
gotoxy(27,12);writeln(' MOHON DIISI DENGAN TELITI ! ');
gotoxy(15,14);write (' masukkan username yang anda inginkan : ');readln(a);
gotoxy(15,15);write (' masukkan password yang anda inginkan : ');readln(x);
writeln;writeln;
write('Silakan
tekan "enter" ');
writeln;
readln;
clrscr;
gotoxy(10,8);writeln (' LOG IN ');
gotoxy(13,10);writeln
('** username : ',a);
gotoxy(13,12);write ('** password : ');readln(pass);
clrscr;
if
pass = x then
else
repeat
writeln('Data
yang anda masukkan belum valid');
write(
'Mohon masukkan password yang benar : ');readln(pass);
clrscr;
until
(pass = x) ;
end;
procedure
endprogram;
begin
gotoxy(20,12);writeln(' G A M E S T A C K ');
gotoxy(20,13);writeln(' ========================= ');
gotoxy(20,14);writeln(' CREATED BY ');
gotoxy(20,15);writeln(' ========================= ');
gotoxy(20,16);writeln(' || || ');
gotoxy(20,17);writeln(' || WINDA HERFIA SEPTIANI ||
');
gotoxy(20,18);writeln(' || APRIYANTINI ||
');
gotoxy(20,19);writeln(' ||
TIAS PUJI ASTUTI || ');
gotoxy(20,20);writeln(' || || ');
gotoxy(20,21);writeln(' ========================= ');
end;
Procedure
Tambah(n:integer;var depan,belakang:ptrsimpul);
begin
new(baru);
baru^.ni:=n;
baru^.next:=depan;
depan:=baru;
if
depan=nil then
belakang:=depan;
end;
Procedure
hapus(var depan:ptrsimpul);
begin
depan:=depan^.next;
end;
procedure
delete (pertama:ptrsimpul; var akhir:ptrsimpul);
begin
while
pertama^.next<>akhir do
begin
pertama:=pertama^.next;
end;
akhir:=pertama;
end;
Procedure
tulis(x:integer;depan:ptrsimpul;var belakang:ptrsimpul);
begin
if
depan=belakang then
begin
gotoxy(5,3);writeln('PINDAHKAN
KOTAK DARI A KE C DENGAN SUSUNAN YANG SAMA');
gotoxy(x,13);Write('---------');
gotoxy(20,14);
write('A');
gotoxy(40,14);
write('B');
gotoxy(60,14);
write('C');
end
else
begin
y:=5;
while
depan<>belakang do
begin
gotoxy(x,y);
Write(depan^.ni);
gotoxy(x-1,13);Write('---------');
depan:=depan^.next;
y:=y+1;
end;
end;
end;
Procedure
numpuk(var pertama,akhir,kedua,akhir1:ptrsimpul);
var
n:integer;
begin
n:=pertama^.ni;
hapus(pertama);
tambah(n,kedua,akhir1);
end;
procedure
tampil(var pertama,kedua,ketiga,akhir,akhir1,akhir2:ptrsimpul);
begin
prosedur;
tulis(x1,pertama,akhir);
prosedur;
tulis(x2,kedua,akhir1);
prosedur;
tulis(x3,ketiga,akhir2);
prosedur;
readkey;
clrscr;
end;
begin
welcome;
clrscr;
lagi:
gotoxy(13,10);writeln('|---|
|---| |---| |---| |---| |---| |---| |---| |---| ');
gotoxy(13,11);writeln('|
G | | A | | M | | E | | S | | T | | A | | C | | K | ');
gotoxy(13,12);writeln('|---|
|---| |---| |---| |---| |---| |---| |---| |---| ');
gotoxy(10,15);Write('SIAP
UNTUK MEMULAI PERMAINAN ^.^ ?');
readkey;
clrscr;
for
i:=5 downto 1 do
begin
tambah(i,pertama,akhir);
end;
x1:=15;
x2:=35;
x3:=55;
tulis(x1,pertama,akhir);
tulis(x2,kedua,akhir1);
tulis(x3,ketiga,akhir2);
readkey;
clrscr;
numpuk(pertama,akhir,ketiga,akhir2);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(pertama,akhir,kedua,akhir1);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(ketiga,akhir2,kedua,akhir1);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(pertama,akhir,ketiga,akhir2);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(kedua,akhir1,pertama,akhir);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(kedua,akhir1,ketiga,akhir2);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(pertama,akhir,ketiga,akhir2);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(pertama,akhir,kedua,akhir1);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(ketiga,akhir2,kedua,akhir1);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(ketiga,akhir1,pertama,akhir);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(kedua,akhir1,pertama,akhir);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(ketiga,akhir2,kedua,akhir1);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(pertama,akhir,ketiga,akhir2);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(pertama,akhir,kedua,akhir1);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(ketiga,akhir2,kedua,akhir1);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(pertama,akhir,ketiga,akhir2);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(kedua,akhir1,pertama,akhir);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(kedua,akhir1,ketiga,akhir2);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(pertama,akhir,ketiga,akhir2);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(kedua,akhir1,pertama,akhir);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(ketiga,akhir2,kedua,akhir1);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(ketiga,akhir2,pertama,akhir);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(kedua,akhir1,
pertama,akhir);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(kedua,akhir1,ketiga,akhir2);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(pertama,akhir,ketiga,akhir2);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(pertama,akhir,kedua,akhir1);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(ketiga,akhir2,kedua,akhir1);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(pertama,akhir,ketiga,akhir2);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(kedua,akhir1,pertama,akhir);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(kedua,akhir1,
ketiga,akhir2);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
numpuk(pertama,akhir,ketiga,akhir2);
tampil(pertama,kedua,ketiga,akhir,akhir1,akhir2);
gotoxy(10,14);Write('Mau
Mengulang Permainan ?');
gotoxy(15,15);Write('[Y/y]
--> CONTINUE');
gotoxy(15,16);write('[T/t]
--> EXIT ');
gotoxy(10,17);write('You
Choose : ');Readln(pil);
if
(pil='Y') or (pil='y') then
begin
clrscr;
while
kedua<>akhir1 do
begin
hapus(kedua);
end;
while
ketiga<>akhir2 do
begin
hapus(ketiga);
end;
goto
lagi;
end
else
begin
clrscr;
endprogram;
end;
end.