uses
  GraphABC;
 
var
  x, y, dx: integer;
 
begin
  x := 200; y := 200;
  dx := 1;
  SetPenWidth(2);
  LockDrawing;
  repeat
    ClearWindow;
    { Корпус: }
    SetPenColor(clGreen);
    MoveTo(x, y);
    LineTo(x + 80, y + 80);
    LineTo(x + 280, y + 80);
    LineTo(x + 350, y);
    LineTo(x, y);
    { Каюта: }
    MoveTo(x + 60, y);
    LineTo(x + 60, y - 50);
    LineTo(x + 280, y - 50);
    LineTo(x + 280, y);
    { Труба: }
    SetPenColor(clBrown);
    MoveTo(x + 150, y - 50);
    LineTo(x + 150, y - 150);
    LineTo(x + 180, y - 150);
    LineTo(x + 180, y - 50);
    { Окна: }
    SetPenColor(clBlue);
    Circle(x + 100, y - 25, 10);
    Circle(x + 150, y - 25, 10);
    Circle(x + 200, y - 25, 10);
    Circle(x + 250, y - 25, 10);
    reDraw;
    x := x + dx;
    { При выходе за рамки окна меняем направление: }
    if (x + 350 > WindowWidth) or (x < 0) then dx := -dx 
  until false;
end.