Parlavo della return 1, non della return 0.

Cmq. debuggando e seguendo il flusso linea per linea, ti assicuro che la return 1 viene raggiunta. Ho provato anche a commentarla per verificare l'effetto e il risultato è un loop infinito, segno del fatto che l'istruzione return viene raggiunta ma eseguita "male", per così dire.

Il blocco di codice che mi hai gentilmente indicato non contiene di proposito un'istruzione return perchè in quel punto non mi pare serva. In quel blocco avviene semplicemente il passo ricorsivo quindi non vedo cosa dovrei ritornare.

Forse sbaglio il modo in cui utilizzo return. Io lo uso come il punto di uscita del codice e ne ho inseriti due (return 1 e return 0) perchè due sono le possibilità (successo o fallimento del giro della scacchiera).

In che modo potrebbe aiutarmi secondo te un'istruzione come "return percorriScacchiera" al posto della semplice chiamata ricorsiva? qual è la reale differenza?

Scusa per le domande ma sto imparando