Помогите пожалуйста!
Ладьи.
Требуется найти такую расстановку 8 ладей на шахматной доске, при которой они не будут угрожать друг другу. Первые три фигуры расставляет пользователь.
for i:=4 to 8 do begin
repeat l:=Chr(Random(8)+65) until not (l in Letters);
repeat n:=Random(8)+1 until not (n in Numbers);
WriteLn(l,' ',n);
Include(Letters,l);
Include(Numbers,n);
end;
for i:=4 to 8 do begin
repeat l:=Chr(Random(8)+65) until not (l in Letters);
repeat n:=Random(8)+1 until not (n in Numbers);
WriteLn(l,' ',n);
Include(Letters,l);
Include(Numbers,n);
end;
const
b=8; {размер доски}
m=3; {начальное число ладей}
var
l:char;
n,k:byte;
i:integer;
Letters:set of char;
Numbers:set of byte;
begin
Letters:=[];
Numbers:=[];
for i:=1 to m do begin
Write('Введите положение (буква и цифра через пробел) ладьи ',i,': ');
ReadLn(l,n);
Include(Letters,UpCase(l));
Include(Numbers,n);
end;
WriteLn('Остальные ладьи можно расставить так:');
for i:=m+1 to b do begin
k:=Random(b-i+1)+1;
l:='@';
repeat
Inc(l);
while l in Letters do Inc(l);
Dec(k)
until k=0;
Include(Letters,l);
k:=Random(b-i+1)+1;
n:=0;
repeat
Inc(n);
while n in Numbers do Inc(n);
Dec(k)
until k=0;
Include(Numbers,n);
WriteLn(l,' ',n)
end;
ReadLn
end.
const
n=20;
type
tRange=array[1..n]of integer;
var
Num,RestNum:tRange;
i,j,k,m:integer;
begin
for i:=1 to n do RestNum[i]:=i;
m:=n;
for i:=1 to n do begin
k:=Random(m)+1;
Num[i]:=RestNum[k];
if k<m then Move(RestNum[k+1],RestNum[k],(m-k)*SizeOf(Integer));
Dec(m)
end;
for i:=1 to n do Write(Num[i]:3);
ReadLn
end.