Hei Leute,
ich benötige für eine Aufgabe lediglich eine Methode, die ein Spielzeug von Game Of Live ausführt. So weit so gut, mein Problem liegt jetzt darin, dass ich die das gegebene Feld für jede Position die Nachbarn abklappern will und schauen will ob sie leben oder nicht. Hab ich jetzt beispielsweise ein Feld was am Rand liegt hat es ja an mindestens einer Seite kein Nachbarn. An dieser Stelle komme ich nicht weiter, was muss ich machen das mein Code überprüft ob die Position i/j >=0 ist.
und dann glaube ich das meine Schleifen aufhören sobald ein true feld gefunden wurde, ich möchte ja aber alle Felder abklappern und nicht beim ersten gefunden true feld schon aufhören, kann mir jemand bitte helfen?
ich benötige für eine Aufgabe lediglich eine Methode, die ein Spielzeug von Game Of Live ausführt. So weit so gut, mein Problem liegt jetzt darin, dass ich die das gegebene Feld für jede Position die Nachbarn abklappern will und schauen will ob sie leben oder nicht. Hab ich jetzt beispielsweise ein Feld was am Rand liegt hat es ja an mindestens einer Seite kein Nachbarn. An dieser Stelle komme ich nicht weiter, was muss ich machen das mein Code überprüft ob die Position i/j >=0 ist.
und dann glaube ich das meine Schleifen aufhören sobald ein true feld gefunden wurde, ich möchte ja aber alle Felder abklappern und nicht beim ersten gefunden true feld schon aufhören, kann mir jemand bitte helfen?
Code:
public class GameLive {
static boolean[][] method(boolean[][] feld){
int [][] hilf_arr = new int[feld.length][feld[0].length];
for(int i = 0; i < feld.length; i++){
for(int j = 0; j < feld[i].length; j++){
if((feld[i][j] == true) || (feld[i][j]==false)){
for(int k = 0; k < feld.length; k++){
for(int l = 0; l < feld[k].length; l++){
if(feld[k][l]==true){
if((feld[k][l-1]==true) && ((feld[k][l-1]) >=0))
hilf_arr[i][j]+=1;
else if((feld[k][l+1]==true) && (feld[k][l+1] >=0))
hilf_arr[i][j]+=1;
else if((feld[k+1][l]==true) && (feld[k+1][l] >=0))
hilf_arr[i][j]+=1;
else if((feld[k-1][l]==true) && (feld[k-1][l] >=0))
hilf_arr[i][j]+=1;
else if((feld[k-1][l+1]==true) && (feld[k-1][l+1] >=0))
hilf_arr[i][j]+=1;
else if((feld[k-1][l-1]==true) && (feld[k-1][l-1] >=0))
hilf_arr[i][j]+=1;
else if((feld[k+1][l+1]==true) && (feld[k+1][l+1] >=0))
hilf_arr[i][j]+=1;
else if((feld[k+1][l-1]==true) && (feld[k+1][l-1] >=0))
hilf_arr[i][j]+=1;
}
}
}
}
}
}
boolean[][] feld_neu = new boolean[feld.length][feld[0].length];
for(int x = 0; x < feld.length-1; x++){
for(int y = 0; y < feld[x].length-1; y++){
if (feld[x][y]) {
if ((hilf_arr[x][y] < 2) || (hilf_arr[x][y] >= 4))
feld_neu[x][y] = false;
if ((hilf_arr[x][y] == 2) || (hilf_arr[x][y] == 3))
feld_neu[x][y] = true;
} else {
if (hilf_arr[x][y] == 3)
feld_neu[x][y] = true;
}
}
}
return feld_neu;
}
}