wskazówki do napisania programu na pilke w prostokacie

0

WItam jak w temacie: zadanie jest takie aby w turbo pascalu napisac program ktory:
-poprosi uzytkownika o podanie wspolrzednych dwoch rogow prostokata
-narysuje prostokat o zadanych wspolrzednych
-w srodku prostokata znajduje sie kolo o promieniu 5
-ma sie ona poruszac i odbijac od scianek prostokata
-nie mozna uzywac procedury cleardevice, czyli tu podpowiedz nauczyciela: maja bys 2 kola w jednym czasie z tym ze pierwsze bedzie z biała obwodka nastepnie nastapi "ruch pileczki" czyli kolejne kolo bedzie miało biała obwodke a poprzednie czarna aby nie bylo go widac. chodzi o to zeby nie zostal pas kolek tylko widoczne ma byc JEDNO.

probowalem napisac oto kod:

uses GRAPH,crt;

var
x1,y1,x2,y2:integer; {prostokat}
a,b:integer;{kolo}
ster,tryb:integer;
i,j:integer;
const
r=5;

begin
Writeln('Podaj wspolrzedne lewego gornego rogu: ');
Write('x: ');
Readln(x1);
Write('y: ');
Readln(y1);
Writeln('Podaj wspolrzedne prawego dolnego rogu: ');
write('x: ');
readln(x2);
Write('y: ');
Readln(y2);

ster:=9;
tryb:=2;
InitGraph(ster,tryb,'C:\tp\BGI');
rectangle(x1,y1,x2,y2);

{poruszanie sie kola i cala reszta}
a:=x1+15;
b:=y1+15;
i:=5;
j:=5;
repeat
begin
Circle(a,b,r);
a:=a+i;
b:=b+j;
Circle(a,b,r);
delay(200);
if a=x1-5 then i:=(-i);
if b=x1-5 then j:=(-j);
if a=y1-5 then i:=(-i);
if b=y1-5 then j:=(-j);

end;
until keypressed;

end.

to udało mi sie wymyslec :P jednak wszystko działa do momentu ruchu pileczki i tu nie mam pojecia co zrobic prosze o jakies naprowadzenie mnie na rozwiazanie problemu :) pozdrawiam

0

Witam ponownie udalo mi sie rozwiazac problem:) wstawiam tu cały kod troszeczke przerobiony :) moze komus sie przyda . . .

uses GRAPH,crt;

var
x1,y1,x2,y2:integer; {prostokat}
a,b:integer;{kolo}
ster,tryb:integer;
i,j:integer;
const
r=5;

begin
Writeln('Podaj wspolrzedne lewego gornego rogu: ');
Write('x: ');
Readln(x1);
Write('y: ');
Readln(y1);
Writeln('Podaj wspolrzedne prawego dolnego rogu: ');
write('x: ');
readln(x2);
Write('y: ');
Readln(y2);

ster:=9;
tryb:=2;
InitGraph(ster,tryb,'C:\tp\BGI');
rectangle(x1,y1,x2,y2);

{poruszanie sie kola i cala reszta}
a:=x1+15;
b:=y1+15;
i:=5;
j:=5;
repeat
begin
SetColor(white);
rectangle(x1,y1,x2,y2);
Circle(a,b,r);
if a=x1+5 then i:=(-i);
if b=y1+5 then j:=(-j);
if a=x2-5 then i:=(-i);
if b=y2-5 then j:=(-j);
a:=a+i;
b:=b+j;
delay(100);
SetColor(black);
Circle(a-i,b-j,r);
end;
until keypressed;

end.

1 użytkowników online, w tym zalogowanych: 0, gości: 1