Sto rifacendo il dragamine per fare pratica e ho scritto questo bit di codice per evitare errori IndexOutOfBounds. C'è un modo per evitare questo, quindi non devo scrivere esplicitamente un'istruzione if ogni possibile errore? Ho pensato di rendere ogni array 2 più grande e di ignorare solo il primo e l'ultimo indice. Mi manca qualcosa di ovvio?C'è un modo per evitare questo blocco di codice?
if (row > 0 && col > 0)
ray[row - 1][col - 1] += 1;
if (row > 0)
ray[row - 1][col] += 1;
if (row > 0 && col < height - 1)
ray[row - 1][col + 1] += 1;
if (col > 0)
ray[row][col - 1] += 1;
if (col < height - 1)
ray[row][col + 1] += 1;
if (row < width - 1 && col > 0)
ray[row + 1][col - 1] += 1;
if (row < width - 1)
ray[row + 1][col] += 1;
if (row < width - 1 && col < height - 1)
ray[row + 1][col + 1] += 1;
Qualcosa sembra un po 'fuori. Perché dovresti iniziare da 2 se 'row = 3'? – Makoto
cool. inoltre, usando min/max sarebbe più chiaro 'startRow = max (0, row-1)' – ZhongYu
@Makoto Il codice nella domanda sta girando attorno a tutti i vicini di 'ray [row] [col]'. Quindi se 'row = 3', vogliamo controllare tutte le celle dalla riga 2 alla riga 4, se esistono. –