Отскок шарика от стенки - PascalABC.NET
Формулировка задачи:
Подскажите пожалуйста как сделать чтобы шарик стукался от стенки до стенки в любую сторону. При это чтоб шарик менял цвет когда стукался.
Решение задачи: «Отскок шарика от стенки»
textual
Листинг программы
uses GraphAbc; var x,y,dx,dy,r:integer; C,B:System.Drawing.Color; procedure dxdy(var dx,dy:integer;var c:System.Drawing.Color;b:System.Drawing.Color); var tx,ty:integer; begin repeat tx:=random(3)-1; ty:=random(3)-1; until ((tx<>0) or (ty<>0)) and (tx<>dx) and (ty<>dy); dx:=tx;dy:=ty; repeat c:=clRandom; until c<>b; end; begin r:=10; randomize; SetWindowHeight(480); SetWindowWidth(640); SetWindowIsFixedSize(true); b:=clGreen; SetBrushColor(b); SetPenColor(b); FillRectangle(0,0,WindowWidth,WindowHeight); x:=random(640); y:=random(480); dxdy(dx,dy,c,b); repeat LockDrawing; SetBrushColor(b); circle(x,y,r); SetBrushColor(c); if (x+dx>Window.Width-r) or (x+dx<r) or (y+dy>WindowHeight-r) or (y+dy<r) then begin dxdy(dx,dy,c,b); end else begin x:=x+dx; y:=y+dy; Circle(x,y,r); end; UnlockDrawing; until false; end.
Объяснение кода листинга программы
- Объявлены переменные: x, y, dx, dy, r (строки 5-9)
- Задана функция dxdy, которая принимает на вход и изменяет переменные dx, dy, c и b (строка 10)
- Задана основная функция, которая начинается с задания переменной r (строка 17)
- Задано значение по умолчанию для переменных x, y (строка 18)
- Задано значение по умолчанию для переменных dx, dy (строка 19)
- Задано значение по умолчанию для переменных c и b (строка 20)
- Очищена область рисования (строка 21)
- Задано значение по умолчанию для переменных c и b (строка 22)
- В основной функции установлен размер окна (строки 23-24)
- В основной функции установлен режим фиксированного размера окна (строка 25)
- В основной функции установлен цвет кисти по умолчанию (строка 26)
- В основной функции установлен цвет пера по умолчанию (строка 27)
- В основной функции выполняется цикл рисования (строка 28)
- В основной функции выполняется проверка на выход за пределы окна (строка 29)
- В основной функции выполняется изменение цвета кисти (строка 30)
- В основной функции выполняется рисование окружности (строка 31)
- В основной функции выполняется проверка на выход за пределы окна (строка 32)
- В основной функции выполняется изменение координат (строка 33)
- В основной функции выполняется рисование окружности (строка 34)
- В основной функции выполняется проверка на выход за пределы окна (строка 35)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д