Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Проблема в прорисовке

Автор: Artem7 8.04.2012 13:24

Написал программу в которой когда шарик при ударе об границы окна как бы отбивается и дальше летит...
В общем на картинке более понятно станет
Он начальное даже не прорисовывает((( Трассировку сделал ничего за границы не должно улететь...
И да картинку я сам нарисовал, чтобы было видно как работать должна а то щас будете говорить что код не подходит под картинку)

Program sharik;
Uses Crt,Graph;
Var x,y,RX,i,j,z:integer;
Gt,Gm:integer;
Begin
Gt:=detect;
InitGraph(Gt,Gm,'');
x:=10;y:=240;RX:=8;i:=2;
repeat
x:=10;y:=240;
repeat
ClearDevice;
x:=x+30;y:=y-60;
SetFillStyle(1,i);
FillEllipse(x,y,RX,RX);delay(15000);
until y=0;
repeat
ClearDevice;
x:=x+30;y:=y+60;
SetFillStyle(1,i);
FillEllipse(x,y,RX,RX);delay(15000);
until y=480;
repeat
ClearDevice;
x:=x+30;y:=y-30;
SetFillStyle(1,i);
FillEllipse(x,y,RX,RX);delay(15000);
until x=640;
repeat
ClearDevice;
x:=x-30;y:=y-30;
SetFillStyle(1,i);
FillEllipse(x,y,RX,RX);delay(15000);
until y=0;
repeat
ClearDevice;
x:=x-30;y:=y+30;
SetFillStyle(1,i);
FillEllipse(x,y,RX,RX);delay(15000);
until x=0;
until keypressed;
End.



Эскизы прикрепленных изображений
Прикрепленное изображение

Автор: Федосеев Павел 8.04.2012 13:57

Давай я дам тебе не рыбку, а удочку...

Поставь точки останова (в IDE TurboPascal и FreePascal это Ctrl-F8 - строка выделится красным) на всех repeat'ах.

Откомпилируй и запусти. Увидишь, что на последнем "until x=0" условие не выполняется. Значит нужно заменить строгое равенство на нестрогое "x<=0". Видимо, аналогично нужно поступить и в других циклах (y>=640, ...).

Автор: Artem7 8.04.2012 14:20

Цитата(Федосеев Павел @ 8.04.2012 9:57) *

Давай я дам тебе не рыбку, а удочку...

Поставь точки останова (в IDE TurboPascal и FreePascal это Ctrl-F8 - строка выделится красным) на всех repeat'ах.

Откомпилируй и запусти. Увидишь, что на последнем "until x=0" условие не выполняется. Значит нужно заменить строгое равенство на нестрогое "x<=0". Видимо, аналогично нужно поступить и в других циклах (y>=640, ...).

Вооо спасибо)))терь заработало)))