Buonasera a tutti! Spero di non annoiarvi con questi "giochetti", ma ho un problema e ci sto sbattendo la testa parecchioMi sto cimentando nel realizzare il gioco della vita in java. Premetto che ho già effettuato una ricerca sul forum a riguardo ma ho trovato altri linguaggi di programmazione e non il mio problema. Ho realizzato una classe che manipola un'array di 1(cella piena) e 0(cella vuota) e che sia in grado di calcolare la "prossima generazione" ovvero la prossima configurazione della griglia. In seguito ho realizzato una classe a parte contenente il metodo main. Tutto compila come deve, ma al momento dell'avvio si presenta "ArrayIndexOutOfBoundsException" --> gli indici dell'array non corrispondono x come devono essere!
Ho provato in tutti i modi, ma ovviamente non il modo corretto![]()
ed è per questo che chiedo a voi se gentilmente potreste darmi una mano!![]()
Secondo me l'errore dovrebbe essere nel metodo "conteggio()". Scusate se posto tutto il codice ma è per una maggiore comprensione. Grazie!![]()
codice:class GiocoDellaVita{ public static int[][] prossimaGenerazione(int[][] mat){ int[][] proxgen = new int[mat.length][mat[0].length]; for(int i=0; i<mat.length; i++){ for(int j=0; i<mat[0].length; j++){ proxgen[i][j]= setCella(mat,i,j); } } return proxgen; } //metodo che conta le celle piene adiacenti private static int conteggio(int[][] mat, int i, int j){ int vivi=0; for(int x=Math.max(0,i-1); x<Math.min(i+2,mat.length); x++){ for(int y=Math.max(0,j-1); y<Math.min(j+2,mat[0].length); y++){ if((mat[x][y]==1) && ((x!=i) || (y!=j))) vivi++; } } return vivi; } //metodo evoluzione cella private static int setCella(int[][] mat, int i, int j){ if(mat[i][j]==1){ if(conteggio(mat,i,j)<2 || conteggio(mat,i,j)>3) mat[i][j]=0; } else{ if(conteggio(mat,i,j)==3) mat[i][j]=1; } return mat[i][j]; } }

Mi sto cimentando nel realizzare il gioco della vita in java. Premetto che ho già effettuato una ricerca sul forum a riguardo ma ho trovato altri linguaggi di programmazione e non il mio problema. Ho realizzato una classe che manipola un'array di 1(cella piena) e 0(cella vuota) e che sia in grado di calcolare la "prossima generazione" ovvero la prossima configurazione della griglia. In seguito ho realizzato una classe a parte contenente il metodo main. Tutto compila come deve, ma al momento dell'avvio si presenta "ArrayIndexOutOfBoundsException" --> gli indici dell'array non corrispondono x come devono essere!
Rispondi quotando
Grazie lo stesso per la pazienza!
