uses crt,graph;
procedure Kletka(x1,y1,c:integer;d:integer);//рисование клеток
begin
Setcolor(c);//2 цвета, темный и светлый
Setfillstyle(1,c);
Bar(x1,y1,x1+d,y1+d);//закрашенные квадраты
end;
procedure Kon(v,g,x1,y1,r:integer);//поле с конем
begin
setcolor(2);
setlinestyle(0,0,3);
Circle(x1+r*(2*v-1),y1+r*(2*g-1),r-3);
settextstyle(0,0,3);
OuttextXY(x1+r*(2*v-1)-10,y1+r*(2*g-1)-10,'K');
end;
procedure Pole(j,i,x1,y1,r:integer);//поля, которые бъются
begin
settextstyle(0,0,3);
setcolor(1);//рисуем крестик синего цвета
line(x1+r*(2*j-1)-10,y1+r*(2*i-1)-10,x1+r*(2*j-1)+10,y1+r*(2*i-1)+10);
line(x1+r*(2*j-1)-10,y1+r*(2*i-1)+10,x1+r*(2*j-1)+10,y1+r*(2*i-1)-10);
end;
var gd,gm,x1,y1,x2,y2,d1,i,j,r:integer;
g,v:byte;
f:text;
begin
assign(f,'kon.txt');
reset(f);
read(f,v,g);//читаем из файла 2 числа - 1-номер вертикали от 1 до 8 слева направо
//2- номер горизонтали от 1 до 8 снизу вверх, наапример поле d5= 4 5
g:=8-g+1;//переворачиваем горизонтали
initgraph(gd,gm,'');
d1:=round((getmaxY-60)/8);//размер клеток
r:=d1 div 2;//радиус
Setcolor(4);//обрамление доски
Rectangle(1,1,8*d1+50,8*d1+60);
Setfillstyle(1,4);
Bar(1,1,8*d1+50,8*d1+60);
x1:=30;y1:=20;//начало координат
for i:=1 to 8 do
begin
for j:=1 to 8 do
if odd(i+j) then Kletka(x1+d1*(i-1),y1+d1*(j-1),15,d1)//если нечетная сумма индексов - светлая клетка
else Kletka(x1+d1*(i-1),y1+d1*(j-1),6,d1);//четная - темная
end;
Setcolor(0);
for i:=0 to 7 do
outtextxy(30+d1*i+d1 div 2,450,chr(ord(i+97)));//подписи вертикалей
for i:=7 downto 0 do
outtextxy(20,440-d1*i-d1 div 2,chr(ord(i+49)));//подписи горизонталей
Kon(v,g,x1,y1,r);//клетка с конем
for i:=1 to 8 do
for j:=1 to 8 do
if ((abs(i-g)=1)and(abs(j-v)=2))or((abs(i-g)=2)and(abs(j-v)=1))then
Pole(j,i,x1,y1,r);//клетки которые бъются
readln;
end.