krugobj.PAS

{* Движение круга *}

Unit KRUGOBJ;
Interface
Implementation
Begin
 writeln('Круг движется сам, стрелками Вы только указываете направление движения. Задействован графический режим.');
End.

Program Krug_graph;

Uses krugobj.pas; {* Эту строку можно удалить *}
Uses crt, graph; {* Вызов внешних функций *}
Var {* Необходимые переменные *}
  a                 : integer;
  b                 : integer;
  x                 : integer;
  y                 : integer;
  ch                : char;
Procedure krug(x  : integer;
y                 : integer;
r                 : word);
Procedure move(ch : char);
Var {* Необходимые переменные *}
  i : integer;
  j : integer;
Begin
  Repeat  krug(x, y, 9);
    setcolor(14);
  Case ch Of  #72 : y := y - 1;
    #80 : y := y + 1;
  #75 : x := x - 1;
  #77 : x := x + 1;
End;
If x = 0 Then
  x := x + 639;
If x = 640 Then
  x := x - 639;
If y = 0 Then
  y := y + 479;
If y = 480 Then
  y := y - 479;
krug(x, y, 5);
setcolor(0);
delay(2000);
Until keypressed; {* После нажатия любой клавиши цикл остановится *}
End;
Begin
clrscr; {* Стираем всё с экрана *}
a := 9;
b := 2;
initgraph(a, b, 'c:tpbgi');
x := 330;
y := 240;
krug(x, y, 5);
Repeat  ch := readkey; {* Ждем нажатия пользователя *}
  If ch = #27 Then
    Goto exit;
move(ch);
Until false;
closegraph;
exit :  clrscr; {* Очистка экрана *}
End......