Hi, im Moment programmiere ich das Game of Life von John H. Conway (Conways Spiel des Lebens ? Wikipedia)
Ich habe einen Algorythmus, um die benachbarten Zellen zu überprüfen. In diesem Beispiel für die linke obere, ausgehend von der aktuellen Zelle. (Eine Zelle hat 8 Nachbarzellen (vertikal, horizontal und diagonal))
Im folgenden Beispiel habe ich eine Kantenlänge von 5. Die Zellen 1|0, 2|1, 2|2, und 2|3 leben. Dies sieht dann so aus:
.*...
..*..
..*..
..*..
.....
Wenn ich jetzt überprüfe, ob Zelle 2|1 einen lebenden Nachbarn hat (In diesem Fall wird wie oben schon erwähnt nur nach einem Nachbarn oben links gesucht) Dies trifft zu, denn die Zelle 1|0 lebt auch). Ich frage mich nur, warum die ausgeklammerte Methode nicht funktioniert, die Methode darunter funktioniert einwandfrei.
MfG
passi
Ich habe einen Algorythmus, um die benachbarten Zellen zu überprüfen. In diesem Beispiel für die linke obere, ausgehend von der aktuellen Zelle. (Eine Zelle hat 8 Nachbarzellen (vertikal, horizontal und diagonal))
Im folgenden Beispiel habe ich eine Kantenlänge von 5. Die Zellen 1|0, 2|1, 2|2, und 2|3 leben. Dies sieht dann so aus:
.*...
..*..
..*..
..*..
.....
Wenn ich jetzt überprüfe, ob Zelle 2|1 einen lebenden Nachbarn hat (In diesem Fall wird wie oben schon erwähnt nur nach einem Nachbarn oben links gesucht) Dies trifft zu, denn die Zelle 1|0 lebt auch). Ich frage mich nur, warum die ausgeklammerte Methode nicht funktioniert, die Methode darunter funktioniert einwandfrei.
Java:
public boolean lives(int x, int y) {
boolean lives = false;
if (myArray[y][x] == "*") {
lives = true;
}
return lives;
}
public int getAnzahlLebenderNachbarn(int x, int y) {
int counter = 0;
// if(lives([(x - 1 + 5) % 5][(y - 1 + 5) % 5])){
// counter++;
// }
if (myArray[(y - 1 + 5) % 5][(x - 1 + 5)
% 5] == "*") {
counter++;
}
return counter;
}
}
MfG
passi