Localize file www.TrSek.com/cover/pupak/pig.pas{ PIG.PAS }
{ Vykresli prasa ktorym sa da pohybovat za pomoci sipok. }
{ }
{ Author: Juraj Pupak }
{ Date : 27.10.2006 http://www.trsek.com }
program Pig;
uses crt;
var
i : integer;
KeyChar : char;
Quit : Boolean;
x,y : integer;
f : boolean;
Procedure KresliPrasa(x,y,farba : integer);
var
i : integer;
begin
If farba <> 0 THEN f := not f;
textcolor(farba);
gotoxy(x,y);
write(chr(218));
IF f = False THEN
begin
gotoxy(x + 5,y + 5);
write(chr(47));
gotoxy(x + 6,y + 5);
write(chr(92));
gotoxy(x + 10,y + 5);
write(chr(47));
gotoxy(x + 11,y + 5);
write(chr(92));
gotoxy(x + 14,y + 3);
write(chr(196));
end;
IF f = true THEN
begin
gotoxy(x + 5,y + 5);
write(chr(179));
gotoxy(x + 10,y + 5);
write(chr(179));
gotoxy(x + 14,y + 3);
write(chr(96));
end;
For i := 1 To 12 Do
begin
gotoxy(x + i,y);
write(chr(196));
end;
For i := 1 To 4 Do
begin
gotoxy(x,y + i);
write(chr(179));
end;
gotoxy(x,y + i);
write(chr(192));
For i := 1 To 13 Do
begin
gotoxy(x + i,y + 4);
write(chr(196));
end;
gotoxy(x + i,y + 4);
write(chr(217));
gotoxy(x + i,y);
write(chr(191));
For i := y + 3 downto y + 1 Do
begin
gotoxy(x + 13,i);
write(chr(179));
end;
begin
clrscr;
writeln('Pohyb prasata sipkami, enter-koniec');
x := 1;
y := 5;
f := true;
KresliPrasa(x,y,12);
Repeat
KeyChar := Readkey;
Quit := False;
Case Ord(KeyChar) Of
0 : begin
KeyChar := ReadKey;
Case Ord(KeyChar) Of
72 : if y > 1 Then
begin
KresliPrasa(x,y,0);
y := y - 1;
KresliPrasa(x,y,12);
end;
80 : if y < 44 THEN
begin
KresliPrasa(x,y,0);
y := y + 1;
KresliPrasa(x,y,12);
end;
75 : if x > 1 THEN
begin
KresliPrasa(x,y,0);
x := x - 1;
KresliPrasa(x,y,12);
end;
77 : if x < 65 THEN
begin
KresliPrasa(x,y,0);
x := x + 1;
KresliPrasa(x,y,12);
end;
end;
end;
13 : Quit := True;
end;
Until Quit;
end.