Движение рисунка по горизонтали - 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
, что позволяет рисунку перемещаться влево и вправо.
Однако, этот код не содержит никаких инструкций для создания вагонов или окошек, поэтому они не будут отображаться при выполнении этого кода. Если вы хотите добавить вагоны, окошки и другие элементы в свой рисунок, вам нужно будет изменить этот код, чтобы он соответствовал вашим требованиям.