Te encuentras en un tablero de ajedrez, como uno lo hace. Puedes ver la salida pero está muy lejos y prefieres no caminar todo el camino. Afortunadamente, algunos lugareños te han ofrecido un aventón. Un Caballero, una Torre, un Obispo y un Rey están dispuestos a llevarte a tu destino, pero al ver que este es un tablero de ajedrez, cada uno debe cumplir con las reglas del ajedrez en el camino a tu destino. Te gustaría salir de aquí lo antes posible, ¿qué oferta aceptas?
Tarea
Dado un tablero de ajedrez de tamaño y forma arbitraria y dos puntos en el tablero de ajedrez, saca la pieza de ajedrez que puede moverse entre las dos ubicaciones en el menor número de movimientos posible. Los tableros no serán necesariamente continuos, lo que significa que podría haber brechas entre las secciones del tablero. Cada una de las cuatro piezas (Rey, Torre, Caballero y Obispo) puede moverse de acuerdo con sus reglas estándar en ajedrez. La Reina y las piezas de peón se han dejado intencionalmente fuera de este desafío.
I / O
Puede tomar la entrada en cualquier formato razonable y también puede generar la salida en el formato que elija. Su entrada y salida debe ser autoconsistente. Si varias piezas pueden llegar al destino en el mismo número de movimientos, debe generar todas las piezas que pueden llegar allí en el mínimo tiempo posible. Si ninguna de las cuatro piezas puede llegar al final, puede generar algo siempre que sea distinto de todas las demás salidas posibles. Esto podría incluir no generar nada o arrojar un error.
Casos de prueba
Un cuadrado indica el punto de partida y un círculo indica el punto final.
obispo
Caballero
Rey
Torre
Rey, caballero
Ninguna