se ci arriva vuole dire che la situazione è quella, c'è poco da fare.
Visto che l'algoritmo è ricorsivo, logga su file.
Scrivi ad ogni giro tutte le info per ricostruire il percorso, per facilitarti magari fallo su file il cui nome è relativo al giro in cui sei (almeno riduci il campo di azione).

Se per te è problematico capire COSA succede (e hai scritto il codice), pensa per me.
Ripeto, a naso, quando il vettore è mezzo vuoto hai delle mancate inizializzazioni (anche se l'input è concreto)

sono solo 2 le vie: debug da quando inizi, passo dopo passo senza saltare niente (anche se lungo) oppure intanto scrivi su file, in modo da circoscrivere l'errore (se riesci a loggare le info giuste)

ps metti la classe Cella