Ti ritrovi su una scacchiera, come si fa. Puoi vedere l'uscita ma è terribilmente lontana e preferiresti non camminare fino in fondo. Fortunatamente alcuni locali ti hanno offerto un passaggio. Un cavaliere, un corvo, un vescovo e un re sono tutti disposti a portarti a destinazione, ma vedendo come questa è una scacchiera devono rispettare le regole degli scacchi sulla strada verso la tua destinazione. Vorresti uscire di qui al più presto, di chi accetti l'offerta?
Compito
Data una scacchiera di dimensioni e forma arbitrariamente e due punti sulla scacchiera, genera il pezzo degli scacchi che può spostarsi tra le due posizioni nel minor numero di mosse possibile. Le schede non saranno necessariamente continue, il che significa che potrebbero esserci delle lacune tra le sezioni della scheda. Ognuno dei quattro pezzi (Re, Torre, Cavaliere e Vescovo) può muoversi secondo le loro regole standard negli scacchi. I pezzi della pedina e della regina sono stati intenzionalmente esclusi da questa sfida.
I / O
Puoi accettare input in qualsiasi formato ragionevole e puoi anche output in qualunque formato tu scelga. L'input e l'output devono essere coerenti. Se più pezzi riescono a raggiungere la destinazione con lo stesso numero di mosse, devi produrre tutti i pezzi che possono arrivare lì nel minor tempo possibile. Se nessuno dei quattro pezzi riesce a raggiungere la fine, è possibile produrre qualsiasi cosa purché sia distinta da tutte le altre possibili uscite. Ciò potrebbe includere la mancata emissione o la generazione di un errore.
Casi test
Un quadrato indica il punto iniziale e un cerchio indica il punto finale.
vescovo
Cavaliere
re
Torre
Re, cavaliere
Nessuna