Помогите написать программку. Вообще не имею понятия как ее написать...
Организовать вывод в окне заданного размера двух символов, "перепрыгивающих" друг через друга и двигающихся по горизонтали.
uses crt;
const
time=100;
procedure jump(r:byte; c:char; Var x,y:byte);//с помощью этой процедуры осуществляется прыжок
var i:byte;
begin
for i:=1 to 2*r do begin
gotoxy(x,y); write(' ');
inc(x);
if i<=r then dec(y)
else inc(y);
gotoxy(x,y); write(c);
delay(time);
end;
end;
var x1,y1,x2,y2:byte;//координаты символов
begin
window(10,1,50,25);//наше окно
TextBackGround(blue);//фоновый цвет окна
clrscr;
x1:=3; y1:=10;//---\
x2:=6; y2:=10;//----\начальные координаты
repeat//прыгаем
jump(3,'a',x1,y1);
jump(3,'b',x2,y2);
until keypressed;//пока не надоест (нажимаем любую клавишу для выхода)
end.
...
procedure jump(r:byte; c:char; Var x,y:byte);
var i:byte;
begin
for i:=1 to 2*r do begin
gotoxy(x,y); write(' ');
inc(x);
if x > lo(windmax) - lo(windmin) then begin
x := 1;
end;
if i<=r then dec(y)
else inc(y);
gotoxy(x,y); write(c);
delay(time);
end;
end;
...
procedure jump(r:byte; c:char; Var x,y,dir:byte);
var i:byte; b:boolean;
begin
for i:=1 to 2*r do begin
gotoxy(x,y); write(' ');
if (x=lo(windmax)-lo(windmin)) or (x=0) then
dir:=-dir;
inc(x,dir);
if i<=r then dec(y)
else inc(y);
gotoxy(x,y); write(c);
delay(time);
end;
end;
uses crt;
const
time=100;
procedure jump(r:byte; c:char; Var x,y,dir:byte);
var i:byte; b:boolean;
begin
for i:=1 to 2*r do begin
gotoxy(x,y); write(' ');
if (x=lo(windmax)-lo(windmin)) or (x=0) then
dir:=-dir;
inc(x,dir);
if i<=r then dec(y)
else inc(y);
gotoxy(x,y); write(c);
delay(time);
end;
end;
var x1,y1,x2,y2:byte;
dir1,dir2:byte;
begin
window(10,1,50,25);
TextBackGround(blue);
clrscr;
dir1:=1; dir2:=1;
x1:=3; y1:=10;
x2:=6; y2:=10;
repeat
jump(5,'a',x1,y1,dir1);
jump(5,'b',x2,y2,dir2);
until keypressed;
end.
...
var
x1,y1,x2,y2:byte;
w, h: integer;
begin
{
w := 20;
h := 10;
}
write('ширина [10 .. 20] = '); readln(w); { можно добавить проверку введенных данных }
write('высота [10 .. 20] = '); readln(h);
window(10, 1, 10 + w, 1 + h);
TextBackGround(blue);
clrscr;
x1:=3; y1:=10;
x2:=6; y2:=10;
repeat
jump(3,'a',x1,y1);
jump(3,'b',x2,y2);
until keypressed;
end.
uses crt;
var
a,b:char;
i,x1,x2:integer;
begin
clrscr;
a:='*';
b:='@';
x1:=1;
x2:=2;
for i:=0 to 38 do
begin
x1:=x2+1;
delay(100);
clrscr;
gotoxy(x1,1);
write(a);
x2:=x1+1;
delay(100);
clrscr;
gotoxy(x2,1);
write(b);
end;
for i:=38 downto 0 do
begin
x1:=x2-1;
delay(100);
clrscr;
gotoxy(x1,1);
write(a);
x2:=x1-1;
delay(100);
clrscr;
gotoxy(x2,1);
write(b);
end;
end.