12. На середине экрана по вертикали медленно движется минимальный прямоугольник. Стрелками мы можем перемещать по вертикали другой минимальный прямоугольник по левому краю экрана. Клавишей ENTER можем "толкнуть" левый прямоугольник в правую сторону. Если левый попадет в правый, они вместе летят дальше до правого края.
подскажите как сделать, чтобы можно было управлять левым, и в это же время двигался правый. Я честно говоря в тупике


Код
program lol;
uses crt;
label m1,m2,endm;
var a,b,z,x:integer;
ch:char;
begin
clrscr;
a:=1;
b:=25;
z:=40;
x:=25;
gotoxy(a,b);
while true do {' dvijka pravogo '}
begin
repeat
gotoxy(z,x);
textcolor(black);
write('Ы');
dec(x);
gotoxy(z,x);
textcolor(white);
write('Ы');
gotoxy(z,x);
delay(25000);
until x=1;
repeat
gotoxy(z,x);
textcolor(black);
write('Ы');
inc(x);
gotoxy(z,x);
textcolor(white);
write('Ы');
gotoxy(z,x);
delay(25000);
until x=25;
end;
repeat {' leviy kvadrat '}
gotoxy(a,b);
m2:
ch:=readkey;
if ch=#72 then
if b<>1 then
begin
gotoxy(a,b);
textcolor(black);
write('Ы');
dec(b);
gotoxy(a,b);
textcolor(white);
write('Ы');
gotoxy(a,b);
end;
if ch=#80 then
if b<>25 then
begin
gotoxy(a,b);
textcolor(black);
write('Ы');
inc(b);
gotoxy(a,b);
textcolor(white);
write('Ы');
gotoxy(a,b);
end;
if ch=#27 then goto endm;
until ch=#13;
while a<>80 do {' dvijka levogo '}
begin
gotoxy(a,b);
textcolor(black);
write('Ы');
inc(a);
gotoxy(a,b);
textcolor(white);
write('Ы');
delay(500);
gotoxy(a,b);
end;
if (a=z)and(b=x) then goto m1 else goto m2;
m1:
begin
clrscr;
writeln('popal!!!');
goto endm;
end;
endm:
end.
зы столкновение я ещё не писал, проверить просто низя будет без синхронности