Разделить экран перегородкой по вертикали на полэкрана. Перегородка движется сама вверх
и вниз. Двигать минимальный прямоугольник.
как ни странно, несмотря на лёгкость не могу сделать ( чтото не так, когда перемещаешься на (80,25) начинается ахинея, да и когда полоска доходит до верха и низа тоге не фонтан, вощем плз укажите ошибку
var x, y, a, b: integer;
ch : char;
procedure down (var x,y : integer);
var i : integer;
begin
i := 12;
gotoxy (x,y);
textcolor (black);
write ('Ы');
textcolor (white);
while i <> 0 do
begin
gotoxy (x,y+i);
write ('Ы');
dec(i);
end;
gotoxy (x,y);
end;
procedure up (var x,y : integer);
var i : integer;
begin
gotoxy (x,y);
textcolor (white);
for i := 1 to 12 do
begin
gotoxy (x,y+i);
write ('Ы');
end;
gotoxy(x,y+13);
textcolor (black);
write ('Ы');
gotoxy (x,y);
end;
procedure pres (var a,b : integer; ch : char);
var q, k: integer;
begin
case ch of
#72 : if (b <> 1) then begin
gotoxy(a,b);
textcolor (black);
write ('Ы');
textcolor (white);
dec (b);
gotoxy (a,b);
write ('Ы');
gotoxy(a,b);
end;
#80 : if (b <> 25) then begin
gotoxy(a,b);
textcolor (black);
write ('Ы');
textcolor (white);
inc (b);
gotoxy (a,b);
write ('Ы');
gotoxy(a,b);
end;
#75 : if (a <> 1) then begin
gotoxy(a,b);
textcolor (black);
write ('Ы');
textcolor (white);
dec (a);
gotoxy (a,b);
write ('Ы');
gotoxy(a,b);
end;
#77 : if (a <> 80) then begin
gotoxy(a,b);
textcolor (black);
write ('Ы');
textcolor (white);
inc (a);
gotoxy (a,b);
write ('Ы');
gotoxy(a,b);
end;
end;
end;
begin
clrscr;
x := 40;
y := 1;
a := 25;
b := 13;
repeat
repeat
textcolor(white);
gotoxy (a,b);
write('Ы');
down (x,y);
inc (y);
if keypressed then
begin
ch := readkey;
pres (a,b,ch);
end;
delay (55000);
until y = 13;
repeat
textcolor(white);
gotoxy (a,b);
write('Ы');
up (x,y);
dec (y);
if keypressed then
begin
ch := readkey;
pres (a,b,ch);
end;
delay (55000);
until y = 0;
until ch=#27;
end.