Попередня
Зміст
Наступна
Тема 17. Використання графiчного режиму.
Теорія

 

    Задача 17.5. Скласти програму для перемiщення по екрану простої фiгури.

    ******************************************************************
    Задача 17.5.1. Для PascalABC дана програма має вигляда- ти так. ******************************************************************
    Program Klav;
    Program Klav;
    Uses  GraphABC,CRT;
    var ch:char;
    x,y,r,krok:integer; color: ColorType;
    procedure mal(c:ColorType); {Проста фiгура - коло}
    begin
      ClearWindow;
      SetPenColor(C);
      Circle(x,y,r);
      //delay(10);
      //SetPenColor(clWhite);
      //Circle(x,y,r);
    
    end;
    
    procedure left;
    begin
      mal(0);
      x:=x-krok;
      mal(color);
     if x<=2*r then
     begin
          x:=r;
     end;
    end;
    
    procedure right;
    begin
      mal(0);
      x:=x+krok;
      mal(color);
     if x>=319-r then
     begin
          x:=319-r;
     end;
    end;
    
    procedure up;
    begin
      y:=y-krok;
      mal(color);
     if y<=r then
     begin
          y:=r;
     end;
    end;
    
    procedure down;
    begin
      y:=y+krok;
      mal(color);
     if y>=199-2*r then
     begin
          y:=199-r;
     end;
    end;
    
    begin
    x:=100;y:=100;r:=10;color:=clRed;krok:=10;
     TextColor(Red);
     GotoXY(1,22);
     WriteLn('F1-Red');
     WriteLn('F2-Green');
     WriteLn('Пробіл-Вихід');
     WriteLn('Вліво, вправо, вверх, вниз -керування фігурою');
     mal(color);
     Repeat  {Початок циклу}
     ch:=ReadKey();
     If ch=#0 Then Begin {Функцiональнi клавiшi : подвiйний код}
     ch:=ReadKey();
     Case ch Of
         #59:color:=clRed; {F1}
         #60:color:=clGreen; {F2}
         #62:color:=clBlue; {F4}
         #77: Left;  {Left}
         #75: Right;  {Right}
         #72: up;  {Up}
         #80: down;  {Down}
     End;
    End; {End Of Case}
     Until (ch=#32) or (ch=#69); //Пробіл, або ...
    end.
    
    
    ******************************************************************
    Задача 17.5.2. Для TurboPascal7.0 (3.0) дана програма має вигляда- ти так. ******************************************************************
    Program Klav;
    {$I graph.p}
    {uses turbo3,graph3,crt;} {Цей рядок треба для TP 7.0}
    
    var ch:char;
    x,y,r,color,krok:integer;
    procedure mal(c:INTEGER); {Проста фiгура - коло}
    begin
      Circle(x,y,r,c);
    end;
    procedure left;
    begin
      mal(0);
      x:=x-krok;
      mal(color);
     if x<=2*r then
     begin
          x:=0;
     sound(1000);
     delay(1000);
     nosound;
     end;
    end;
    procedure right;
    begin
      mal(0);
      x:=x+krok;
      mal(color);
     if x>=319-r then
     begin
          x:=319-2*r;
     sound(1000);
     delay(1000);
     nosound;
     end;
    end;
    procedure up;
    begin
      mal(0);
      y:=y-krok;
      mal(color);
     if y<=2*r then
     begin
          y:=r;
     sound(1000);
     delay(1000);
     nosound;
     end;
    end;
    procedure down;
    begin
      mal(0);
      y:=y+krok;
      mal(color);
     if y>=199-2*r then
     begin
          y:=199-r;
     sound(1000);
     delay(1000);
     nosound;
     end;
    end;
    begin
    graphcolormode;
    x:=100;y:=100;r:=10;color:=1;krok:=10;
     mal(color);
     Repeat  {Початок циклу}
     Read(kbd,ch);
     If ch=#27 Then Begin {Функцiональнi клавiшi : подвiйний код}
     Read(kbd,ch);
     Case ch Of
         #59:color:=1; {F1}
         #60:color:=2; {F2}
         #61:color:=3; {F3}
         #75: Left;  {Left}
         #77: Right;  {Right}
         #72: up;  {Up}
         #80: down;  {Down}
     End;
    End; {End Of Case}
     Until (ch=#32) or (ch=#69);
    end.
    

    Завдання 17.5. Скласти програму для перемiщення по екрану невеликого малюнка.

Попередня
Зміст
Наступна