Напишите программу: Бильярдный стол и шар - Pascal ABC
Формулировка задачи:
Напишите программу: Шар, который катается по бильярдному столу, когда шар попал в лузу (одну из 6), то программа прерывается. (Хотя бы наброски программы)
Решение задачи: «Напишите программу: Бильярдный стол и шар»
textual
Листинг программы
uses graphABC; var x,y,kx,ky,v: integer; b: boolean; procedure Fon; begin clearwindow; setbrushcolor(clbrown); rectangle(10,10,490,390); setbrushcolor(clgreen); rectangle(20,20,480,380); setbrushcolor(clbrown); circle(30,30,20); circle(470,370,20); circle(470,30,20); circle(30,370,20); end; procedure Shar(var xx,yy,kkx,kky: integer); begin if (xx<35) or (xx>465) then kkx:=kkx*(-1); if (yy<35) or (yy>365) then kky:=kky*(-1); xx:=xx+kkx; yy:=yy+kky; setbrushcolor(clwhite); circle(xx,yy,10); end; begin lockdrawing; v:=random(2); if v=0 then kx:=1 else kx:=-1; v:=random(2); if v=0 then ky:=1 else ky:=-1; x:=250; y:=200; repeat Fon; Shar(x,y,kx,ky); sleep(1); redraw; b:=((x<45) and (y<45)) or ((x<45) and (y>355)) or ((x>455) and (y<45)) or ((x>455) and (y>355)); until b; end.
Объяснение кода листинга программы
- Программа описывает бильярдный стол и шар.
- Используется графический модуль graphABC.
- В начале программы объявлены переменные:
- x, y, kx, ky, v - целочисленные переменные;
- b - булева переменная;
- procedure Fon; - процедура для рисования стола;
- procedure Shar(var xx,yy,kkx,kky: integer); - процедура для рисования шара;
- В процедуре Fon рисуется бильярдный стол, используя функции setbrushcolor, rectangle и circle.
- В процедуре Shar(var xx,yy,kkx,kky: integer) рисуется шар, используя функции setbrushcolor и circle. Также здесь используются переменные kkx и kky для горизонтального и вертикального смещения шара.
- В основной части программы, после объявления переменных, используется цикл repeat-until для выполнения игры.
- В начале каждого хода программы вызывается процедура Fon для отрисовки стола.
- Затем вызывается процедура Shar с текущими координатами шара x, y и смещениями kx и ky, которые случайным образом принимают значения -1 или 1.
- После этого программа ожидает 1 секунду и вызывает функцию redraw для обновления экрана.
- Булева переменная b устанавливается в истинное значение, если шар находится в пределах стола, и в противном случае остается ложным.
- Цикл повторяется до тех пор, пока булева переменная b не станет истинной, что означает, что шар попал в лузу.
- В конце программы требуется вызов функции sleep для задержки выполнения программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д