Программа: клавишами управления курсором двигать фигуру по экрану - 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.
Объяснение кода листинга программы
- В начале программы подключаются необходимые библиотеки crt и graph.
- Затем определяется тип записи Point, который представляет собой точку с координатами x и y.
- Создается массив точек-фигуры m, в котором каждая точка представлена экземпляром типа Point.
- Определяется процедура Z, которая принимает на вход координаты x и y, массив m и цвет фона. Она отвечает за рисование фигуры по указанным координатам, используя цвета фона и фигуры.
- Далее определяется переменная gd, которая содержит код графического дисплея.
- Затем вызывается функция Initgraph, которая инициализирует графический дисплей с использованием переданных ей параметров.
- Устанавливается начальное положение курсора (x, y).
- Определяются два цвета — c1 и c2, которые будут использоваться для рисования фигуры и фона соответственно.
- Переменная move устанавливается в значение true, что означает, что мы можем рисовать фигуру.
- В цикле повторяется проверка нажатия клавиши. Если клавиша была нажата, то считывается ее код (k).
- Если был нажат один из четырех символов-стрелок (вверх, вниз, вправо, влево), то обновляются координаты курсора (x1, y1) и устанавливается значение move в true.
- Если был нажат символ #77 (вправо), то рисуется фигура цветом фона и создается новая точка (x, y) с цветом c1.
- Если был нажат символ #75 (влево), то рисуется фигура цветом фона и создается новая точка (x, y) с цветом c1.
- Если был нажат символ #72 (вверх), то рисуется фигура цветом фона и создается новая точка (x, y) с цветом c1.
- Если был нажат символ #77 (вправо), то рисуется фигура цветом фона и создается новая точка (x, y) с цветом c1.
- Если был нажат символ #75 (влево), то рисуется фигура цветом фона и создается новая точка (x, y) с цветом c1.
- Если был нажат символ #27 (Esc), то цикл повторяющихся проверок нажатия клавиши прекращается, и закрывается графический дисплей.
- В конце программы закрывается графический дисплей с помощью функции closegraph.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д