Программа: клавишами управления курсором двигать фигуру по экрану - Turbo Pascal

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

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

Задать цвет фона розовый, цвет фигуры - серый, фигура в виде буквы Z. Клавишами управления курсором двигать фигуру по экрану.

Решение задачи: «Программа: клавишами управления курсором двигать фигуру по экрану»

textual
Листинг программы
uses crt,graph;
const n=11;{10 точек-вершины фигуры, 1-я точка 2 раза, замыкаем }
type
Point=record {тип запись - точка с координатами}
           x,y:integer;
           end;
mas=array[1..n] of Point;{массив точек-фигура}
procedure Z(x,y:integer;var m:mas;c:byte);
{процедура рисования фигуры по координатам "курсора", точкам и цвету}
var i:byte;
begin
Setcolor(c);
m[1].x:=x;m[1].y:=y;
m[2].x:=x+50;m[2].y:=y;
m[3].x:=x+50;m[3].y:=y+5;
m[4].x:=x+7;m[4].y:=y+45;
m[5].x:=x+50;m[5].y:=y+45;
m[6].x:=x+50;m[6].y:=y+50;
m[7].x:=x;m[7].y:=y+50;
m[8].x:=x;m[8].y:=y+45;
m[9].x:=x+43;m[9].y:=y+5;
m[10].x:=x;m[10].y:=y+5;
m[11].x:=x;m[11].y:=y;
moveto(m[1].x,m[1].y);
for i:=1 to n do
lineto(m[i].x,m[i].y);
Setfillstyle(1,c);
Floodfill((m[1].x+m[2].x) div 2,(m[1].y+m[10].y) div 2,c);
end;
var gd,gm:integer;
    x,y,x1,y1:integer;
    p:mas;
    c1,c2:byte;
    k:char;
    move:boolean;
begin
gd:=detect;
Initgraph(gd,gm,'');
Setbkcolor(13);{цвет фона}
x:=340;y:=240;{начальное положение}
c1:=7;c2:=13;{цвет фигуры-серый, цвет фона-типа розовый}
move:=true;{рисуем}
repeat
if keypressed then{если нажата клавиша}
  begin
    k:=readkey;
    if k=#80 then {стрелка вниз}
      begin
        y1:=y;
        x1:=x;
        y:=y+5;
        move:=true;
      end;
    if k=#72 then{вверх}
      begin
        y1:=y;
        x1:=x;
        y:=y-5;
        move:=true;
      end;
    if k=#77 then{вправо}
      begin
        y1:=y;
        x1:=x;
        x:=x+5;
        move:=true;
      end;
    if k=#75 then{влево}
      begin
        y1:=y;
        x1:=x;
        x:=x-5;
        move:=true;
      end;
  end;
if move then
  begin
   Z(x1,y1,p,c2);{рисуем цветом фона, стираем}
   Z(x,y,p,c1);{рисуем заданным цветом, создаем на новом месте}
   move:=false;
  end;
until k=#27;{выход - Esc}
closegraph
end.

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

  1. В начале программы подключаются необходимые библиотеки crt и graph.
  2. Затем определяется тип записи Point, который представляет собой точку с координатами x и y.
  3. Создается массив точек-фигуры m, в котором каждая точка представлена экземпляром типа Point.
  4. Определяется процедура Z, которая принимает на вход координаты x и y, массив m и цвет фона. Она отвечает за рисование фигуры по указанным координатам, используя цвета фона и фигуры.
  5. Далее определяется переменная gd, которая содержит код графического дисплея.
  6. Затем вызывается функция Initgraph, которая инициализирует графический дисплей с использованием переданных ей параметров.
  7. Устанавливается начальное положение курсора (x, y).
  8. Определяются два цвета — c1 и c2, которые будут использоваться для рисования фигуры и фона соответственно.
  9. Переменная move устанавливается в значение true, что означает, что мы можем рисовать фигуру.
  10. В цикле повторяется проверка нажатия клавиши. Если клавиша была нажата, то считывается ее код (k).
  11. Если был нажат один из четырех символов-стрелок (вверх, вниз, вправо, влево), то обновляются координаты курсора (x1, y1) и устанавливается значение move в true.
  12. Если был нажат символ #77 (вправо), то рисуется фигура цветом фона и создается новая точка (x, y) с цветом c1.
  13. Если был нажат символ #75 (влево), то рисуется фигура цветом фона и создается новая точка (x, y) с цветом c1.
  14. Если был нажат символ #72 (вверх), то рисуется фигура цветом фона и создается новая точка (x, y) с цветом c1.
  15. Если был нажат символ #77 (вправо), то рисуется фигура цветом фона и создается новая точка (x, y) с цветом c1.
  16. Если был нажат символ #75 (влево), то рисуется фигура цветом фона и создается новая точка (x, y) с цветом c1.
  17. Если был нажат символ #27 (Esc), то цикл повторяющихся проверок нажатия клавиши прекращается, и закрывается графический дисплей.
  18. В конце программы закрывается графический дисплей с помощью функции closegraph.

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


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

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

11   голосов , оценка 4.455 из 5
Похожие ответы