El camino más corto del caballero en el tablero de ajedrez

He estado practicando para una próxima competencia de programación y me he topado con una pregunta que me desconcierta por completo. Sin embargo, siento que es un concepto que debería aprender ahora en lugar de cruzar los dedos que nunca aparece.

Básicamente, se trata de una pieza de caballero en un tablero de ajedrez. Se le dan dos entradas: ubicación inicial y ubicación final. El objetivo es calcular e imprimir el camino más corto que el caballero puede tomar para llegar a la ubicación objetivo.

Nunca me he ocupado de las cosas más cortas y ni siquiera sé por dónde empezar. ¿Qué lógica utilizo para abordar esto?

PD Si tiene alguna relevancia, quieren que complemente los movimientos normales del caballero al permitirle moverse a las cuatro esquinas del cuadrado formado por los (potencialmente) ocho movimientos que un caballero puede hacer, dado que el centro del cuadrado es el ubicación del caballero.

Respuestas a la pregunta(16)

Su respuesta a la pregunta