MaxGuevara
16-12-2010, 13:46
Ciao a tutti.
Sto facendo un programma che simuli il gioco Prato fiorito,e mi sono bloccato in una funzione che deve controllare le 8 posizioni attorno ad un punto ed incrementarle di 1.
Il metodo per svolgere cio' e' questo:
for(int r=(ry-1); r<=(ry+1); r++)
{
for(int q=(rx-1); q<=(rx+1); q++)
{
if(base[q][r]!=9)
{
base[q][r]++;
}
}
}
ossia due for annidati che controllano le 8 posizioni e se il numero salvato in ogni posizione e' diverso da 9,lo incrementa di 1.
Questi for pero' non funzionano se rx-1 o ry-1 o rx+1 o ry+1 escono dalla matrice,e mi mandano in palla il compilatore.
Come posso fare per effettuare questa operazione rimanendo nei limiti di grandezza della matrice?
Sto facendo un programma che simuli il gioco Prato fiorito,e mi sono bloccato in una funzione che deve controllare le 8 posizioni attorno ad un punto ed incrementarle di 1.
Il metodo per svolgere cio' e' questo:
for(int r=(ry-1); r<=(ry+1); r++)
{
for(int q=(rx-1); q<=(rx+1); q++)
{
if(base[q][r]!=9)
{
base[q][r]++;
}
}
}
ossia due for annidati che controllano le 8 posizioni e se il numero salvato in ogni posizione e' diverso da 9,lo incrementa di 1.
Questi for pero' non funzionano se rx-1 o ry-1 o rx+1 o ry+1 escono dalla matrice,e mi mandano in palla il compilatore.
Come posso fare per effettuare questa operazione rimanendo nei limiti di grandezza della matrice?