Программа рисует человечка, делающего утреннюю зарядку — Pascal(Паскаль)

{        Внимание! Для работы этой программы необходимо, чтобы:

          1) Turbo Pascal был установлен в каталог  C:\TP;
          2) каталог C:\TP\BGI содержал файл  egavga.bgi ;
          3) в меню  Options/Directories  был указан путь
             к файлу  graph.tpu,  например,  С:\TP\UNITS.

        Если Turbo Pascal установлен в другом каталоге, нужно изменить
        путь к нему в процедуре  InitGraph (9-я строка программы).
}

 Program Animation;
   Uses Crt, Graph;     { подключение к программе библиотек Crt и Graph }
   Const       { вертикальные и горизонтальные координаты положения рук }
      Vert     : Array[1..3] of Integer = (190, 157, 120);
      Horizont : Array[1..3] of Integer = (200, 190, 200);
   Var
      GrDriver, GrMode, GrError, i, j : Integer;
 BEGIN
   GrDriver := Detect; InitGraph(GrDriver, GrMode, 'C:\TP\BGI');
   GrError := GraphResult; If GrError <> GrOk then Halt;

   SetColor(LightGray);         { установка светлосерого цвета для рамки}
   Rectangle(20, 20, 480, 400); { рисование рамки                       }
   SetColor(LightCyan);         {установка яркоголубого цвета для текста}
   OutTextXY(200, 40, 'П Р И В Е Т !');

   SetColor(LightGray); Circle (250, 130, 20);         { голова      }
   SetColor(Yellow); Arc(250, 130, 0, 180, 26);        { волосы      }
   Arc(250, 130, 0, 180, 24); Arc(250, 130, 0, 180, 22);
   Line(250, 105, 244, 115); Line(250, 105, 250, 116); { чубчик      }
   Line(250, 105, 256, 115);
   SetColor(LightCyan); Circle(241, 125, 4);           { левый глаз  }
   Circle(259, 125, 4);                                { правый глаз }
   SetColor(LightRed);
   SetFillStyle(SolidFill, LightRed);
   FillEllipse(250, 140, 6, 3);                        { рот         }
   Setcolor(Green);
   Line(250, 152, 250, 220);                           { туловище    }
   Line(250, 220, 210, 290);                           { левая нога  }
   Line(250, 220, 290, 290);                           { правая нога }

   Repeat               { цикл прерывается нажатием любой клавиши    }
     For i := 1 to 3 do { последовательный вывод трех положений рук: }
       begin            { вниз, на уровне плеч, вверх                }
         SetColor(LightCyan); Sound(200*i);
         Line(250, 157, Horizont[i], Vert[i]);         { левая рука  }
         Line(250, 157, 500-Horizont[i], Vert[i]);     { правая рука }
         Delay(300);                                   { задержка    }

         SetColor(Black);     { смена цвета на черный для повторного }
         { pисования рук в том же положении ("стирания" их с экрана) }
         Line(250, 157, Horizont[i], Vert[i]);         { левая рука  }
         Line(250, 157, 500-Horizont[i], Vert[i]);     { правая рука }
       end
   until Keypressed;

   SetColor(LightCyan);
   Line(250, 157, Horizont[3], Vert[3]);        { левая рука поднята }
   Line(250, 157, 500-Horizont[3], Vert[3]);    { правая рука поднята}

   For i := 1 to 10 do { звуковая трель   }
     begin
       Sound(1000);
       Delay(50);
       Sound(1500);
       Delay(50)
     end;

   NoSound;            { выключение звука }
   CloseGraph;
 END.

Leave a Comment

− 4 = 1