Witajcie!
Mam matury, więc niewiele mam czasu na pisanie (a i ochota na pisanie czegokolwiek mnie opuszcza :P )
Kod jest dosyć słaby, ale próbuję stworzyć mały (bardzo mały i prymitywny) symulator tej gry - było takie zadanie w zeszłym roku na maturze z informatyki (całe szczęście, że stara podstawa) i pomyślałem, że to fajny pomysł poklepać sobie chwilkę dziennie.
Do rzeczy - mam metodę numberOfNeighbours(int row, int column) : int
, która ma zwrócić ilość sąsiadów dla komórki i nie mogę jej jakoś sensownie ugryźć.
Oto ona:
public int numberOfNeighbours(int x, int y) {
int neighboursCount = 0;
for (int i = -1; i < 2; i++) {
for (int j = -1; j < 2; j++) {
if (gameBoard[x + i][y + j] == 'X') neighboursCount++;
}
}
return neighboursCount;
}
Uwsteczniam się i potrzebuję pomocy. Możliwe też, że błąd kryje się w metodzie nextRound()
, treść poniżej:
void nextRound() {
// Starts from 1 because number of neighbours add -1
// to row and to column in the first place
for (int i = 1; i < gameBoard.length - 1; i++) {
for (int j = 1; j < gameBoard[i].length - 1; j++) {
if (gameBoard[i][j] == 'X' && hasTwoOrThreeNeighbours(i, j)) {
gameBoard[i][j] = 'X';
} else if (gameBoard[i][j] == '.' && hasThreeNeighbours(i, j)) {
gameBoard[i][j] = 'X';
} else {
gameBoard[i][j] = '.';
}
}
}
numberOfRounds++;
}
Snippet całej klasy jest tutaj
Z góry dzięki za pomoc i przepraszam za słabą jakość kodu.