Другие языки программирования и технологии

Прошу помощи в Turbo pASCAL.

program ferz;
uses crt;
var s,i:integer;
a:array[ 1..8 ] of boolean;
b:array[ 2..16 ] of boolean;
c:array[ -7..7 ] of boolean;
x:array[ 1..8 ]of integer;

procedure print;
var k:integer;
begin
s:=s+1;
write('Решение номер ',s:2,' : ');
for k:=1 to 8 do write(x [ k ] :4);
writeln;
write('Press <enter>');
readln;
end;{of print}

procedure try(i:integer);
var j:integer;
begin
for j:=1 to 8 do
if a[ j ]and b[ i+j ]and c[ i-j ] then
begin
x[ i ]:=j;
a[ j ]:=false;b[ i + j ]:=false;c[ i - j ]:=false;
if i<8 then try(i+1) else print;
a[ j ]:=true;b [ i + j ]:=true;c [ i - j ]:=true;
end;
end;{of try}

begin{of main}
clrscr;
for i:=1 to 8 do a [ i ]:=true;
for i:=2 to 16 do b [ i ]:=true;
for i:=-7 to 7 do c [ i ]:=true;
s:=0;
try(1)
end.
НГ
Николай Голышев
7 165
Лучший ответ
(abs(x-xF)=abs(y-yF))or(x=xF)or(y=yF) - вот условие проверки рубит ли ферзь с координатами клетки (xF;yF), клетку с координатами (x,y) Думаю разберёшся в остальном.
ЕА
Естай Арипов
12 778
вот те алгорим
1) в случайном порядке расставляются ферци на шахматной доске (массиве 8:8)
2)(берем 1 ферзя) порверяем все "точки" где он может срубить
3)если в одной из этих точек есть фигура (другой ферзь) то сдвигаем на 1 клетку
4)если нет, то берем следущего верзя ...
2)(берем 2 ферзя) порверяем все "точки" где он может срубить
3)если в одной из этих точек есть фигура (другой ферзь) то сдвигаем на 1 клетку
....
2)(берем 8 ферзя) порверяем все "точки" где он может срубить
3)если в одной из этих точек есть фигура (другой ферзь) то сдвигаем на 1 клетку
Макс Берсенев
Макс Берсенев
1 709
Ой жесткачь этот турбо паскаль) ) Придерается к каждой фигне) ) Я с ним не работаю еще с 2003. Поэтому не помню почти