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

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

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

вот прога. движение объекта получается с "тенью". как ее убрать? можно ли обойтись без процедуры движения..? ___________
Листинг программы
  1. uses crt, graph;
  2. var gd, gm, a,b: integer;
  3. procedure car (x,y: integer);
  4. begin
  5. setcolor (yellow);
  6. line (x,y, x+80, y);
  7. line (x+80,y,x+120, y+40);
  8. line (x+120, y+40, x+160, y+40);
  9. line (x+160, y+40, x+160, y+80);
  10. line (x+160, y+80, x-40, y+80);
  11. line (x-40, y+80, x-40, y+40);
  12. line (x-40, y+40, x-20, y+40);
  13. line (x-20, y+40, x, y);
  14. circle (x+20, y+80, 20);
  15. circle (x+100, y+80, 20);
  16. end;
  17. begin
  18. gd:=detect;
  19. a:=200; b:=200;
  20. initgraph (gd, gm, ' ');
  21. repeat car (a,b);
  22. delay (100);
  23. car(a,b);
  24. a:=a+25
  25. until keypressed;
  26. closegraph;
  27. end.

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

textual
Листинг программы
  1. uses wincrt, graph;
  2. procedure car (x,y: integer);
  3. begin
  4. setcolor (yellow);
  5. line (x,y, x+80, y);
  6. line (x+80,y,x+120, y+40);
  7. line (x+120, y+40, x+160, y+40);
  8. line (x+160, y+40, x+160, y+80);
  9. line (x+160, y+80, x-40, y+80);
  10. line (x-40, y+80, x-40, y+40);
  11. line (x-40, y+40, x-20, y+40);
  12. line (x-20, y+40, x, y);
  13. circle (x+20, y+80, 20);
  14. circle (x+100, y+80, 20);
  15. end;
  16. var gd, gm, a,b: integer;
  17. begin
  18. gd:=detect;
  19. a:=200; b:=200;
  20. initgraph (gd, gm, ' ');
  21. repeat
  22. cleardevice;
  23. car (a,b);
  24. delay (50);
  25. a:=a+5
  26. until a>=getmaxX-160;
  27. readkey
  28. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы