Сейчас эти данные отображаются на аналоговых датчикахнекорректна. Датчики только измеряют/контролируют что-то, отображают индикаторы.
grdChessBoard.Font.Size:= 20+trunc(grdChessBoard.DefaultRowHeight/QueensCount)-1;
grdChessBoard.Font.Style:=[fsBold];
grdChessBoard.Font.Name:='Times New Roman';
if ACol = 0 then
grdChessBoard.Canvas.TextRect(grdChessBoard.CellRect(ACol, ARow), grdChessBoard.CellRect(ACol, ARow).Left, grdChessBoard.CellRect(ACol, ARow).Top, IntToStr(QueensCount - ARow))
else if ARow = QueensCount then
grdChessBoard.Canvas.TextRect(grdChessBoard.CellRect(ACol, ARow), grdChessBoard.CellRect(ACol, ARow).Left, grdChessBoard.CellRect(ACol, ARow).Top, char(96+ACol))
else
// а тут уже отрисовка клеточек собственно доски
if RestoreLastSolution then
begin
For i := 1 to QueensCount do
x[i] := TmpArr[i];
a[Cout1] := True;
b[Cout2 + Cout1] := True;
c[Cout2 - Cout1] := True;
i:=Cout2;
Solve(i);
end;
За платными услугами Вам на фриланс или к одногруппникам. Меня это не интересует.