program z8_57;
uses crt;
const nmax=8;
dx:array[1..nmax] of integer=(-2,-1,1,2,2,1,-1,-2);
dy:array[1..nmax] of integer=(1,2,2,1,-1,-2,-2,-1);
type tarr=array[1..nmax,1..nmax] of integer;
var a:tarr;
kx,ky,qx,qy,ak,aq,i:integer;
c:char;
procedure FillKnightAttack(var a:tarr;
x,y:integer;
var attack:integer);
var i,dsx,dsy:integer;
begin for i:=1 to 8 do begin dsx:=x+dx[i];
dsy:=y+dy[i];
if (dsx in [1..8]) and (dsy in [1..8]) then begin if a[dsx,dsy]=8 then attack:=a[dsx,dsy];
if a[dsx,dsy]=0 then a[dsx,dsy]:=1;
end;
end;
end;
procedure FillQueenAttack(var a:tarr;
x,y:integer;
var attack:integer);
var i,j:integer;
begin for i:=1 to 8 do for j:=1 to 8 do if ((i=x)or(j=y)or(i-j=x-y)or(i+j=x+y))and((i<>x)or(j<>y)) then begin if a[i,j]=7 then attack:=a[i,j];
if a[i,j]=0 then a[i,j]:=1;
end;
end;
procedure PrintBoard;
var i,j:integer;
begin for i:=1 to nmax do begin for j:=1 to nmax do write(a[i,j],' ');
writeln;
end;
end;
BEGIN clrscr;
for i:=1 to nmax do write(i:2);
writeln;
writeln('a');
writeln('b');
writeln('c');
writeln('d');
writeln('e');
writeln('f');
writeln('g');
writeln('h');
writeln('vvedite pologenie konya');
readln(c,ky);
kx:=ord(c)-ord('a')+1;
writeln('vvedite pologenie ferzya');
readln(c,qy);
qx:=ord(c)-ord('a')+1;
ak:=0;
aq:=0;
FillChar(a,SizeOf(a),0);
a[kx,ky]:=7;
a[qx,qy]:=8;
FillKnightAttack(a,kx,ky,ak);
FillQueenAttack(a,qx,qy,aq);
Writeln('Board: ');
PrintBoard;
if aq<>0 then writeln('Ferz atakuet konya') else if ak<>0 then writeln('Kon atakuet ferzya') else writeln('no');
readln;
END.