Robię grę kółko i krzyżyk w javie, częściowo zrobiłem metodę o nazwie "checkDiagonalWin", ale zatrzymałem się na tym, aby przeszukać wszystkie ewentualne przekątne(wygrane po skosie), nie tylko te główne(od lewego górnego rogu do prawego dolnego i lewego dolnego do prawego górnego). Tu jest moja metoda, która obejmuje tylko te dwie możliwości. Czy ktoś miałby na szybko jakieś rozwiązanie, jak sprawdzić wszystkie możliwe wygrane po skosie? Rozmiar planszy jest dowolny, jak również fieldsToWin.
public boolean checkDiagonalWin(Player player) {
int total = 0;
for (int x = 0; x < size; x++) {
for (int lr = x; lr < size - x; lr++) {
if (gameBoard[lr - x][lr - x] == player.getId()) {
total++;
if (total == fieldsToWin) {
return true;
}
} else {
total = 0;
}
}
}
total = 0;
for (int rl = 0; rl < size; rl++) {
if (gameBoard[rl][size - rl - 1] == player.getId()) {
total++;
if (total == fieldsToWin) {
return true;
}
} else {
total = 0;
}
}
return false;
}