Durante il controllo piuttosto che andare sommare 1 per andare alla coordinata, somma una variabile D (destra) e G (giù) che possono assumere valori 0 e 1 a seconda se stai o meno sui bordi della tua matrice.
Oppure più semplicemente sui tuoi controlli degli if, puoi mettere per primo, un controllo del tipo:
- if mi trovo alla lunghezza r==lughezza della matrice-1 allora non devo guardare a destra della matrice
- if mi trovo alla altezza c==alteza della matrice-1 allora non devo guardare sotto alla matrice
Questo lo puoi fare semplicemente mettendo questo tipo di controllo all'interno dei tuoi if seguito da un and, così che appena trova un elemento falso seguito da un and salta tutti gli altri controlli e continua l'esecuzione.