Движение машины, убрать тень - Free Pascal

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

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

вот прога. движение объекта получается с "тенью". как ее убрать? можно ли обойтись без процедуры движения..? ___________
uses crt, graph;
var gd, gm, a,b: integer;
 
 procedure car (x,y: integer);
 begin
 setcolor (yellow);
 line (x,y, x+80, y);
 line (x+80,y,x+120, y+40);
 line (x+120, y+40, x+160, y+40);
 line (x+160, y+40, x+160, y+80);
 line (x+160, y+80, x-40, y+80);
 line (x-40, y+80, x-40, y+40);
 line (x-40, y+40, x-20, y+40);
 line (x-20, y+40, x, y);
circle (x+20, y+80, 20);
circle (x+100, y+80, 20);
end;
 
 begin
gd:=detect;
 a:=200; b:=200;
initgraph (gd, gm, ' ');
repeat car (a,b);
delay (100);
car(a,b);
a:=a+25
until keypressed;
closegraph;
 
end.

Решение задачи: «Движение машины, убрать тень»

textual
Листинг программы
uses wincrt, graph;
procedure car (x,y: integer);
begin
setcolor (yellow);
line (x,y, x+80, y);
line (x+80,y,x+120, y+40);
line (x+120, y+40, x+160, y+40);
line (x+160, y+40, x+160, y+80);
line (x+160, y+80, x-40, y+80);
line (x-40, y+80, x-40, y+40);
line (x-40, y+40, x-20, y+40);
line (x-20, y+40, x, y);
circle (x+20, y+80, 20);
circle (x+100, y+80, 20);
end;
var gd, gm, a,b: integer;
begin
gd:=detect;
a:=200; b:=200;
initgraph (gd, gm, ' ');
repeat
cleardevice;
car (a,b);
delay (50);
a:=a+5
until a>=getmaxX-160;
readkey
end.

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

  1. Объявлены переменные gd, gm, a, b типа integer.
  2. Переменная gd инициализируется значением detect.
  3. Переменные a и b инициализируются значением 200.
  4. Вызов функции initgraph с аргументами gd, gm, ' ' для инициализации графического режима.
  5. Запускается бесконечный цикл.
  6. В начале цикла экран очищается.
  7. Вызывается процедура car с аргументами a, b.
  8. После вызова процедуры car происходит задержка в 50 миллисекунд.
  9. Значение переменной a увеличивается на 5.
  10. Цикл продолжается до тех пор, пока значение переменной a не станет больше getmaxX-160.
  11. В конце цикла вызывается функция readkey для чтения нажатой клавиши.
  12. В процедуре car происходит рисование автомобиля на экране.
  13. Линии автомобиля рисуются с помощью функции line.
  14. Функция setcolor используется для установки цвета на желтый.
  15. Функция circle используется для рисования кругов.
  16. Переменные x, y используются в качестве аргументов для функций line и circle.
  17. Значения переменных x, y увеличиваются на 80 и 40 соответственно для рисования автомобиля.
  18. В конце процедуры car происходит рисование колес автомобиля с помощью функции circle.
  19. Колеса автомобиля рисуются в двух разных местах на экране.
  20. Значения переменных x, y увеличиваются на 100 для рисования второго колеса.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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