Движение рисунка по горизонтали - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, не мог бы кто подсказать как заставить паровозик двигаться?) справа-налево. Если есть возможность минимизировать код, буду благодарна.

Решение задачи: «Движение рисунка по горизонтали»

textual
Листинг программы
program Momomo;
uses graphabc;
var
  x: integer;
begin
  x:=300;
  lockdrawing;
  repeat
    clearwindow;
    x:=x-2;
     {1 вагончик(нос)}
               line(x+300,150,x+310,150);
               line(x+300,150,x+300,180);
               line(x+310,150,x+310,140);
               line(x+315,150,x+315,140);
               line(x+315,150,x+340,150);
               line(x+340,150,x+340,130);
               line(x+390,130,x+390,180);
               {крыша трубы}
               line(x+310,140,x+308,140);
               line(x+315,140,x+317,140);
               line(x+308,140,x+312,134);
               line(x+317,140,x+312,134);
               {крыша вагончика 1}
               line(x+340,130,x+335,130);
               line(x+335,130,x+364,115);
               line(x+364,115,x+395,130);
               line(x+395,130,x+390,130);
               {низ вагончика 1}
               line(x+300,180,x+310,180);
               line(x+310,180,x+315,175);
               line(x+315,175,x+325,175);
               line(x+325,175,x+330,180);
               line(x+330,180,x+350,180);
               line(x+350,180,x+355,175);
               line(x+355,175,x+365,175);
               line(x+365,175,x+370,180);
               line(x+370,180,x+390,180);
 
           {окошки}
{1 вагончик}
Rectangle(x+350,135,x+380,165);
line(x+365,135,x+365,163);
line(x+350,150,x+379,150);
        {колёсики(1)}
           Circle(x+320,187,10);
           Circle(x+360,187,10);
           Circle(x+425,187,10);
           Circle(x+460,187,10);
           Circle(x+510,187,10);
           Circle(x+545,187,10);
           {колёсики(2)}
           Circle(x+320,187,8);
           Circle(x+360,187,8);
           Circle(x+425,187,8);
           Circle(x+460,187,8);
           Circle(x+510,187,8);
           Circle(x+545,187,8);
           {линии(1 колесо)}
           line(x+312,187,x+328,187);
           line(x+320,195,x+320,179);
 
            line(x+352,187,x+368,187);
           line(x+360,195,x+360,179);
           line(x+417,187,x+433,187);
           line(x+425,195,x+425,179);
            line(x+452,187,x+468,187);
           line(x+460,195,x+460,179);
           line(x+502,187,x+518,187);
           line(x+510,195,x+510,179);
           line(x+537,187,x+553,187);
           line(x+545,195,x+545,179);
 
 
{связка1}
 line(x+390,160,x+395,160);
 line(x+395,160,x+400,157);
 line(x+400,157,x+405,160);
 line(x+405,160,x+410,160);
 
  line(x+390,165,x+395,165);
 line(x+395,165,x+400,169);
 line(x+400,169,x+405,165);
 line(x+405,165,x+410,165);
 
{вагончик 2}
          line(x+410,180,x+410,130);
          line(x+475,180,x+475,130);
          {крыша}
          line(x+405,130,x+480,130);
          line(x+405,130,x+415,120);
          line(x+415,120,x+470,120);
          line(x+470,120,x+480,130);
    {низ}      line(x+410,180,x+415,180);
               line(x+415,180,x+420,175);
               line(x+420,175,x+430,175);
               line(x+430,175,x+435,180);
               line(x+435,180,x+450,180);
               line(x+450,180,x+455,175);
               line(x+455,175,x+465,175);
               line(x+465,175,x+470,180);
               line(x+470,180,x+475,180);
               {2 вагончик Окошко}
Rectangle(x+420,140,x+440,160);
line(x+430,140,x+430,159);
line(x+420,150,x+439,150);
Rectangle(x+450,140,x+470,160);
line(x+460,140,x+460,159);
line(x+450,150,x+469,150);
 
               {связка2}
 line(x+475,160,x+480,160);
 line(x+480,160,x+485,157);
 line(x+485,157,x+490,160);
 line(x+490,160,x+495,160);
 
  line(x+475,165,x+480,165);
 line(x+480,165,x+485,169);
 line(x+485,169,x+490,165);
 line(x+490,165,x+495,165);
 
               {вагончик 3}
          line(x+495,180,x+495,130);
          line(x+560,180,x+560,130);
          line(x+495,130,x+560,130);
          {line}
          line(x+495,145,x+560,145);
          line(x+495,160,x+560,160);
          {груз}
          line(x+500,130,x+515,115);
          line(x+515,115,x+520,120);
          line(x+520,120,x+530,110);
          line(x+530,110,x+540,118);
          line(x+540,118,x+544,114);
          line(x+544,114,x+558,130);
 
    {низ}      line(x+495,180,x+500,180);
               line(x+500,180,x+505,175);
               line(x+505,175,x+515,175);
               line(x+515,175,x+520,180);
               line(x+520,180,x+535,180);
               line(x+535,180,x+540,175);
               line(x+540,175,x+550,175);
               line(x+550,175,x+555,180);
               line(x+555,180,x+560,180);
    sleep(20);
    redraw;
  until x < -300;
 
readln;
end.

Объяснение кода листинга программы

Этот код на Turbo Pascal написан для движения рисунка по горизонтали с заданными координатами. Он использует команды для вывода линий и окон, а также команду sleep для задержки между обновлениями. Координаты x изменяются в пределах от -300 до 300, что позволяет рисунку перемещаться влево и вправо. Однако, этот код не содержит никаких инструкций для создания вагонов или окошек, поэтому они не будут отображаться при выполнении этого кода. Если вы хотите добавить вагоны, окошки и другие элементы в свой рисунок, вам нужно будет изменить этот код, чтобы он соответствовал вашим требованиям.

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы