Occhio, l'ordine delle condizioni deve essere invertito (prima controlli se le coordinate sono sensate, poi accedi all'elemento), altrimenti prima sfori e poi controlli.
Quindi non così
ma così:codice:campo[x][y+1]==n && y+1<=3
(nota che puoi fare questo perché l'operatore && garantisce che se l'espressione a sinistra è false quella a destra non viene valutata, altrimenti dovresti fare due if nidificati)codice:y+1<=3 && campo[x][y+1]==n