Я пытаюсь реализовать абсолютное расстояние ранга файла, описанное на Knight-Distance из Chess Programming Wiki, но я немного запутался, что int
с a
и b
должны быть валгоритм для вычисления кратчайшего расстояния рыцаря (шахматы)
int knightDistance(int a, int b).
Вам не нужны два набора координат, чтобы понять это (начать местоположение и пункт назначения)? Я подумал, что, возможно, они использовали 0,0 в качестве начала, а затем вы просто даете разницу между начальным и конечным местоположениями, но это дает плохой результат.
Как это должно работать, и работает ли этот алгоритм для любой сетки размера или просто 8 × 8?
'int knightDistance (int a, int b)' появляется несколько раз на этом сайте, на который вы ссылаетесь? У Knight Fill есть совсем другой подход, b1 и b2 представляют собой набор, закодированный в 64-битовое целое без знака. – Cruncher