Вот такое задание: Даны два шарика диаметром М. Промоделировать движение шариков по всей плоскости экрана. Шарики могут двигаться по прямым линиям. Изменение угла движения после столкновения с границей экрана или друг с другом может быть случайной величиной. Шарик не может вылететь за пределы квадрата. Пользователь может варьировать скорости движения шариков с помощью стрелок управления курсором.
Хотелось бы разобраться в коде программы... ( дело в том, что код не мой) Объясните пожалуйста назначение каждой из процедур в тексте приведённой ниже программы!
procedure escape (x, y, r, bgC : integer); begin Setcolor (bgC); circle (x, y, r); Floodfill(x, y, bgC); end;
procedure move (x, y, dx, dy : integer); begin x := x+ dx; y := y + dy; end;
procedure charge_on_oppositeX (x, dx : integer); begin dx := -dx; x := x + dx; end;
procedure charge_on_oppositeY (y, dy : integer); begin dy := -dy; y := y + dy; end;
Procedure border (x, y, r : integer); begin if (x + r >= GetMaxX - 1) or ( x - r <= 1) then charge_on_oppositeX( x, dx); if (y+r>=GetMaxY-1) or (y-r<=1) then charge_on_oppositeY ( y, dy); end;