program titanik;
uses Graph,
Crt;
var
grDriver:integer; { драйвер }
grMode:integer; { графический режим }
grPath:string; { место расположения драйвера }
ErrCode:integer; { результат инициализации граф. режима }
x,y:integer; { координаты кораблика }
color:word; { цвет кораблика }
bkcolor:word; { цвет фона экрана }
{ Кораблик }
Procedure Titan(x,y:integer; { координаты базовой точки }
color:word); { цвет корабля }
const
dx=5;
dy=5;
var
OldColor:word;
begin
OldColor:=GetColor; { сохранить текущий цвет }
SetColor(color); { установить новый цвет }
{ корпус }
MoveTo(x,y);
LineTo(x,y-2*dy);
LineTo(x+10*dx,y-2*dy);
LineTo(x+11*dx,y-3*dy);
LineTo(x+17*dx,y-3*dy);
LineTo(x+14*dx,y);
LineTo(x,y);
{ надстройка }
MoveTo(x+3*dx,y-2*dy);
LineTo(x+4*dx,y-3*dy);
LineTo(x+4*dx,y-4*dy);
LineTo(x+13*dx,y-4*dy);
LineTo(x+13*dx,y-3*dy);
Line(x+5*dx,y-3*dy,x+9*dx,y-3*dy);
{ капитанский мостик }
Rectangle(x+8*dx,y-4*dy,x+11*dx,y-5*dy);
{ труба}
Rectangle(x+7*dx,y-4*dy,x+8*dx,y-7*dy);
{ иллюминаторы }
Circle(x+12*dx,y-2*dy,Trunc(dx/2));
Circle(x+14*dx,y-2*dy,Trunc(dx/2));
{ мачта }
Line(x+10*dx,y-5*dy,x+10*dx,y-10*dy);
{ оснастка }
MoveTo(x+17*dx,y-3*dy);
LineTo(x+10*dx,y-10*dy);
LineTo(x,y-2*dy);
SetColor(OldColor); { восстановить текущий цвет }
end;
begin
grDriver := VGA; { режим VGA}
grMode:=VGAHi; { разрешение 640х480}
grPath:='d:\bp\bgi'; { драйвер, файл EGAVGA.BGI, находится
в каталоге d:\bp\bgi }
InitGraph(grDriver, grMode,grPath);
ErrCode := GraphResult;
if ErrCode <> grOk then Halt(1);
x:=10;
y:=200;
color:=LightGray;
SetBkColor(Blue);
bkcolor:=GetBkColor;
repeat
Titan(x,y,color); { нарисовать корабль }
Delay(100);
Titan(x,y,bkcolor); { стереть корабль }
PutPixel(x,y,color); { след от корабля }
x:=x+2;
until (x>500);
OutTextXY(10,10,'Рейс завершен!');
readln;
CloseGraph;
end.