![]() ![]() ![]() ![]() |
|||
Тема
17. Використання
графiчного режиму.
|
|||
Задача 17.5. Скласти програму для перемiщення по екрану простої фiгури. Задача 17.5.1. Для PascalABC дана програма має вигляда- ти так. ****************************************************************** Program Klav; Program Klav; Uses GraphABC,CRT; var ch:char; x,y,r,krok:integer; color: ColorType; procedure mal(c:ColorType); {Проста фiгура - коло} begin ClearWindow; SetPenColor(C); Circle(x,y,r); //delay(10); //SetPenColor(clWhite); //Circle(x,y,r); end; procedure left; begin mal(0); x:=x-krok; mal(color); if x<=2*r then begin x:=r; end; end; procedure right; begin mal(0); x:=x+krok; mal(color); if x>=319-r then begin x:=319-r; end; end; procedure up; begin y:=y-krok; mal(color); if y<=r then begin y:=r; end; end; procedure down; begin y:=y+krok; mal(color); if y>=199-2*r then begin y:=199-r; end; end; begin x:=100;y:=100;r:=10;color:=clRed;krok:=10; TextColor(Red); GotoXY(1,22); WriteLn('F1-Red'); WriteLn('F2-Green'); WriteLn('Пробіл-Вихід'); WriteLn('Вліво, вправо, вверх, вниз -керування фігурою'); mal(color); Repeat {Початок циклу} ch:=ReadKey(); If ch=#0 Then Begin {Функцiональнi клавiшi : подвiйний код} ch:=ReadKey(); Case ch Of #59:color:=clRed; {F1} #60:color:=clGreen; {F2} #62:color:=clBlue; {F4} #77: Left; {Left} #75: Right; {Right} #72: up; {Up} #80: down; {Down} End; End; {End Of Case} Until (ch=#32) or (ch=#69); //Пробіл, або ... end. Задача 17.5.2. Для TurboPascal7.0 (3.0) дана програма має вигляда- ти так. ****************************************************************** Program Klav; {$I graph.p} {uses turbo3,graph3,crt;} {Цей рядок треба для TP 7.0} var ch:char; x,y,r,color,krok:integer; procedure mal(c:INTEGER); {Проста фiгура - коло} begin Circle(x,y,r,c); end; procedure left; begin mal(0); x:=x-krok; mal(color); if x<=2*r then begin x:=0; sound(1000); delay(1000); nosound; end; end; procedure right; begin mal(0); x:=x+krok; mal(color); if x>=319-r then begin x:=319-2*r; sound(1000); delay(1000); nosound; end; end; procedure up; begin mal(0); y:=y-krok; mal(color); if y<=2*r then begin y:=r; sound(1000); delay(1000); nosound; end; end; procedure down; begin mal(0); y:=y+krok; mal(color); if y>=199-2*r then begin y:=199-r; sound(1000); delay(1000); nosound; end; end; begin graphcolormode; x:=100;y:=100;r:=10;color:=1;krok:=10; mal(color); Repeat {Початок циклу} Read(kbd,ch); If ch=#27 Then Begin {Функцiональнi клавiшi : подвiйний код} Read(kbd,ch); Case ch Of #59:color:=1; {F1} #60:color:=2; {F2} #61:color:=3; {F3} #75: Left; {Left} #77: Right; {Right} #72: up; {Up} #80: down; {Down} End; End; {End Of Case} Until (ch=#32) or (ch=#69); end. Завдання 17.5. Скласти програму для перемiщення по екрану невеликого малюнка. |
|||