Нарисовать движущийся квадрат - Turbo Pascal
Формулировка задачи:
Написать программу с применением динамических переменных движения квадрата параллельно оси Y,а зачем параллельно оси Х.С изменением направления движения изменять цвет закраски фигуры.
Если можно то с описанием.
Решение задачи: «Нарисовать движущийся квадрат»
textual
Листинг программы
- uses crt,graph;
- var x,y,c:integer;
- size:word;
- p:pointer;
- begin
- initgraph(x,y,'');
- c:=1; //цвет 1=синий
- repeat
- x:=getmaxX div 2;//по вертикали
- y:=15;
- size:=ImageSize(x-15,y-15,x+15,y+15);//выделяем участок под квадрат
- setcolor(c);//цвет линий
- setfillstyle(1,c);//цвет заливки
- bar(x-15,y-15,x+15,y+15); //закрашенный квадрат
- getmem(p,size);//выделим память под рисунок
- getimage(x-15,y-15,x+15,y+15,p^);//сохраним рисунок в буфер
- cleardevice; //очистим экран
- setcolor(14);//выведем сообщение желтым цветом
- settextstyle(0,0,2);
- outtextXY(10,10,'Exit any key');
- while not keypressed and(y<getmaxY-30) do //пока не нажата клавиша и не низ экрана
- begin
- putimage(x,y,p^,1); //читайте HELP
- delay(10);
- putimage(x,y,p^,1);
- y:=y+5;
- end;
- c:=c+1;//увеличим номер цвета
- if c=16 then c:=1;//черный на синий
- if c=8 then c:=9; //темно-серый на голубой
- x:=15; //то же слева на право
- y:=getmaxY div 2;
- size:=ImageSize(x-15,y-15,x+15,y+15);{Єў*¤а*в 30е30}
- setcolor(c);
- setfillstyle(1,c);
- bar(x-15,y-15,x+15,y+15);
- getmem(p,size);
- getimage(x-15,y-15,x+15,y+15,p^);
- cleardevice;
- setcolor(14);
- settextstyle(0,0,2);
- outtextXY(10,10,'Exit any key');
- while not keypressed and(x<getmaxX-30) do
- begin
- putimage(x,y,p^,1);
- delay(10);
- putimage(x,y,p^,1);
- x:=x+5;
- end;
- c:=c+1;
- if c=16 then c:=1;
- if c=8 then c:=9;
- until keypressed;//нажатие любой клавиши=конец
- freemem(p,size); //освободим память
- end.
Объяснение кода листинга программы
- Используется библиотека crt и графический модуль graph.
- Задаются переменные x, y, c, size, p.
- Вызывается функция initgraph, передавая в нее координаты x, y и пустую строку. Это позволяет задать начальные параметры для работы с графикой.
- Переменная c инициализируется значением 1, что соответствует синему цвету.
- В цикле while выполняются следующие действия:
- x вычисляется как половина максимального значения по вертикали.
- y устанавливается равным 15.
- size вычисляется как размер участка под квадрат.
- Устанавливается цвет линий и заливки.
- Выводится закрашенный квадрат.
- Выделяется память под рисунок.
- Сохраняется рисунок в буфер.
- Экран очищается.
- Выводится сообщение желтым цветом.
- Устанавливается стиль текста.
- Выводится сообщение
Exit any key
до тех пор, пока не будет нажата клавиша или пока не будет достигнут нижний край экрана. - Переменная c увеличивается на единицу. Если достигнуто максимальное значение цвета (16), то значение переменной c сбрасывается обратно на 1.
- Если значение переменной c равно 8, то значение переменной c сбрасывается на 9, что соответствует темно-серому цвету на голубом.
- Значение переменной x сбрасывается на 15.
- Значение переменной y вычисляется как половина максимального значения по вертикали.
- Цикл while повторяется до тех пор, пока не будет нажата клавиша или пока не будет достигнут верхний край экрана.
- Освобождается память, выделенная под рисунок.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д