Чтобы вычленить ходы шахматного коня из комбинации движения на одну клетку без координат, можно использовать следующий алгоритм: 1
- Обозначить H — горизонтальное движение (−1 = влево, 1 = вправо), V — вертикальное движение (−1 = вверх, 1 = вниз), D1 — первая диагональ (−1 = вверх-влево, 1 = вниз-вправо), D2 — вторая диагональ (−1 = вниз-влево, 1 = вверх-вправо). 1 Ноль везде означает отсутствие движения. 1
- Любое движение коня представить как (h, v, d1, d2). 1
- Проверить, что в каждой из пар (h, v) и (d1, d2) всегда должен быть ноль, причём только один. 1
- Представить (h, v, d1, d2) как (h, v, dh, dv). 1 В случае D1 это просто копирование значения в обе переменные, а при D2 — dh=d2, dv=-d2. 1
- Сравнить ненулевое значение из (h, v) с соответствующим значением из (dh, dv). 1 Если значения не совпадают, ход неправильный. 1
Также для решения задачи о прохождении конём всех клеток шахматной доски можно использовать метод Эйлера: конь двигается по произвольному маршруту, пока не исчерпает все возможные ходы, затем оставшиеся непройденными клетки добавляются в сделанный маршрут после специальной перестановки его элементов. 2