Non è possibile neanche tentarci (anche volendo e avendo il tempo) senza conoscere *precisamente* le regole di cui hai parlato in modo confuso.

Ovviamente, la funzione, oltre alla casella di partenza e quella di arrivo, dovrà conoscere la situazione di ogni casella nella scacchiera.