Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2012, 20:53   #1
Di-em
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 16
По умолчанию Движение фигуры

Ребят помогите изменить программу, что бы вместо квадрата двигался правильный шестиугольник

Код:
uses crt,graph;
var
x,x1,y,y1,r,t,t1 : integer;
grMode,grDriver,kol,sz,code : integer;
p : pointer;
size : word;
ch : char;
s : string;
begin
clrscr;
writeln('Введите размеры прямоугольника от 1 до 50');
repeat
readln(s);
val (s,sz,code);
if (sz>50) or (sz<=0) or (code<>0) then
writeln('Ошибка ввода');
until (sz<50) and (sz>0) and (code=0);
randomize;
grDriver:=detect;
initGraph(grDriver,grMode,' ');
if graphResult<>grOk then halt;
clearDevice;
r:=50;
x:=50;y:=50;
repeat
repeat
circle(x,y,45);
setfillstyle(1,random(16));
floodfill(x,y,white);

x:=x+r*2;
until x>=615;
x:=50;
y:=y+r*2;
until y>=455;
x:=320;
x1:=350;
y:=240;
y1:=270;
size := imagesize(x-sz,y-sz,x1+sz,y1+sz);
getmem(p,size);
getimage(x-sz,y-sz,x1+sz,y1+sz,P^);
setfillstyle(solidfill,blue);
bar(x-sz,y-sz,x1+sz,y1+sz);


repeat
ch:=readkey;
if ord(ch)=75 then
begin
putimage(x-sz,y-sz,p^,copyput);
t:=x;
t1:=x1;
x:=x-10;
x1:=x1-10;
if x<=0+sz then
begin
x:=t;
x1:=t1;
end;
getimage(x-sz,y-sz,x1+sz,y1+sz,p^);
bar(x-sz,y-sz,x1+sz,y1+sz);

delay(10);
end;

if ord(ch)=77 then

begin
putimage(x-sz,y-sz,p^,copyput);
t:=x;
t1:=x1;
x:=x+10;
x1:=x1+10;
if x1>=640-sz then
begin
x:=t;
x1:=t1;
end;
getimage(x-sz,y-sz,x1+sz,y1+sz,p^);
delay(10);
bar(x-sz,y-sz,x1+sz,y1+Sz);



end;

if ord(ch)=80 then
begin
putimage(x-sz,y-sz,p^,copyput);
t:=y;
t1:=y1;
y:=y+10;
y1:=y1+10;
if y1>=480-sz then
begin
y:=t;
y1:=t1;
end;

getimage(x-sz,y-sz,x1+sz,y1+sz,p^);
bar(x-sz,y-sz,x1+sz,y1+sz);


delay(10);
end;

if ord(ch)=72 then
begin
putimage(x-sz,y-sz,p^,copyput);

t:=y;
t1:=y1;
y:=y-10;
y1:=y1-10;
if y<=0+sz then
begin
y:=t;
y1:=t1;
end;

getimage(x-sz,y-sz,x1+sz,y1+sz,p^);
bar(x-sz,y-sz,x1+sz,y1+sz);


delay(10);
end;

until ord(ch)=27;



freemem(p,size);
readln;
closegraph;
end.
турбо паскаль


________
ПРЕДУПРЕЖДЕНИЕ!

Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 10.01.2012 в 22:38.
Di-em вне форума Ответить с цитированием
Старый 10.01.2012, 20:55   #2
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

уважаемый, вам сложно нажать # ?
Poma][a вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Движение одной фигуры,вслед изменения высоты другой фигуры. 7vlad37 Microsoft Office Excel 3 21.07.2011 18:01
Движение фигуры По диагонали Weyner Мультимедиа в Delphi 6 21.10.2010 15:10
Движение фигуры Виталюкас Общие вопросы Delphi 2 28.04.2010 10:44
Движение фигуры в PaitBox Виталюкас Общие вопросы Delphi 7 27.04.2010 10:39
Движение фигуры по окружности &RiU Помощь студентам 3 31.10.2009 20:39