Управление клавишами в паскаль - Pascal ABC
Формулировка задачи:
В общем нужно составить программу,где два шарика управляются различными клавишами в четырех направлениях.Новичок в этом деле,помогите пожалуйста.
Решение задачи: «Управление клавишами в паскаль»
textual
Листинг программы
uses graphABC,crt; procedure Sharik(x,y,c:integer); begin setbrushcolor(c); setpencolor(c); circle(x,y,15); end; procedure menu; begin setbrushstyle(bsClear); textout(100,0,'Красный шарик 1-вниз 2-вверх 3-вправо 4-влево'); textout(100,20,'Синий шарик 5-вниз 6-вверх 7-вправо 8-влево'); textout(230,40,'Выход - Esc'); end; var x1,y1,x2,y2,d1,d2:integer; k:char; begin hidecursor; x1:=windowwidth div 3; y1:=windowheight div 2; x2:=x1*2; y2:=y1; menu; Sharik(x1,y1,clRed); Sharik(x2,y2,clBlue); lockdrawing; repeat if keypressed then begin k:=readkey; case k of #49: begin clearwindow; menu; if y1>windowheight-30 then d1:=0 else d1:=10; y1:=y1+d1; Sharik(x1,y1,clRed); Sharik(x2,y2,clBlue); delay(100); redraw; end; #50: begin clearwindow ; menu; if y1<80 then d1:=0 else d1:=10; y1:=y1-d1; Sharik(x1,y1,clRed); Sharik(x2,y2,clBlue); delay(100); redraw end; #51: begin clearwindow; menu; if x1>windowwidth-30 then d1:=0 else d1:=10; x1:=x1+d1; Sharik(x1,y1,clRed); Sharik(x2,y2,clBlue); delay(100); redraw; end; #52: begin clearwindow; menu; if x1<30 then d1:=0 else d1:=10; x1:=x1-d1; Sharik(x1,y1,clRed); Sharik(x2,y2,clBlue); delay(100); redraw; end; #53: begin clearwindow; menu; if y2>windowheight-30 then d2:=0 else d2:=10; y2:=y2+d2; Sharik(x2,y2,clBlue); Sharik(x1,y1,clRed); delay(100); redraw; end; #54: begin clearwindow; menu; if y2<80 then d2:=0 else d2:=10; y2:=y2-d2; Sharik(x2,y2,clBlue); Sharik(x1,y1,clRed); delay(100); redraw end; #55: begin clearwindow; menu; if x2>windowwidth-30 then d2:=0 else d2:=10; x2:=x2+d2; Sharik(x2,y2,clBlue); Sharik(x1,y1,clRed); delay(100); redraw; end; #56: begin clearwindow; menu; if x2<30 then d2:=0 else d2:=10; x2:=x2-d2; Sharik(x2,y2,clBlue); Sharik(x1,y1,clRed); delay(100); redraw; end; #27:exit; end; end; until k=#27; end.
Объяснение кода листинга программы
Этот код написан на языке Pascal ABC и выполняет следующие действия:
- Устанавливает цвет кисти и текста в соответствующие цвета (clRed и clBlue).
- Вычисляет координаты точек для рисования шариков на основе координат мыши.
- Рисует круги с помощью функции circle.
- Выводит текст на экран с помощью функции textout.
- Проверяет, была ли нажата клавиша.
- Если была нажата клавиша, то считывает ее код и выполняет соответствующий действия.
- Повторяет цикл до тех пор, пока не будет нажата клавиша с кодом #27, что означает выход из программы.
- Показывает сообщение об окончании программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д