Движение круга по периметру экрана - PascalABC.NET

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

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

Нужно сделать так, чтобы круг двигался по периметру всего экрана по часовой стрелке пока не будет нажата ЛКМ.

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

textual
Листинг программы
  1. uses graphABC;
  2. const w=400;//размеры окна
  3.       r=20;//радиус круга
  4.       z=1;//задержка
  5.       d=1;//шаг смещения шара
  6. var f:boolean;//переменная для останова программы
  7. procedure MouseDown(x,y,mousebutton: integer);
  8. begin
  9. if mousebutton=1 then f:=false;//если ЛКМ остановка
  10. end;
  11. var x,y:integer;
  12. begin
  13. setwindowsize(w,w);
  14. centerwindow;
  15. f:=true;
  16. onmousedown:=MouseDown;
  17. x:=r;
  18. y:=r;
  19. lockdrawing;
  20. while f do
  21.  begin
  22.   clearwindow;
  23.   setbrushcolor(clRed);
  24.   circle(x,y,10);
  25.   sleep(1);
  26.   if (x<w-r)and(y<=r) then x:=x+1
  27.   else if (y<w-r)and(x>=w-r) then y:=y+1
  28.   else if(x>r)and(y>=w-r) then x:=x-d
  29.   else if (y>r)and(x<=w-r) then y:=y-d;
  30.   redraw;
  31.  end;
  32. end.

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

  1. Объявлены константы: wi — размер окна, r — радиус круга, z — задержка, d — шаг смещения круга.
  2. Объявлена переменная: f — для контроля цикла.
  3. Определён обработчик события мыши: MouseDown — чтобы остановить движение круга.
  4. Инициализированы переменные: x, y — начальные координаты круга.
  5. Задано основное условие для цикла: while f do — пока не нажата ЛКМ.
  6. Очищено окно и установлен цвет кисти.
  7. Нарисован круг на текущих координатах.
  8. Если нажата ЛКМ, то программа останавливается: if mousebutton=1 then f:=false;
  9. Задержка в 1 миллисекунду.
  10. Условие для изменения координат: if (x<w-r)and(y<=r) then x:=x+1
  11. Условие для изменения координат: else if (y<w-r)and(x>=w-r) then y:=y+1
  12. Условие для изменения координат: else if(x>r)and(y>=w-r) then x:=x-d
  13. Условие для изменения координат: else if (y>r)and(x<=w-r) then y:=y-d;
  14. Окно обновляется после изменения координат.
  15. Цикл повторяется.
  16. Код для остановки программы: onmousedown:=MouseDown;
  17. Код для установки размеров окна и его централизации: setwindowsize(w,w); centerwindow;
  18. Инициализация переменной f для контроля цикла: f:=true;
  19. Объявление переменных x и y: var x,y:integer;
  20. Начало выполнения программы: begin

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


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

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

15   голосов , оценка 3.733 из 5

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

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

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