Hallo zusammen,
ich bin gerade dabei ein vier gewinnt spiel zu programmieren.
Ich komme leider nicht mit der Überprüfung klar, ob ein Spieler gewonnen hat.
Bei der Überprüfung auf die Diagonale habe ich folgende Methode:
Das Problem darin sehe ich so, dass die Zeichen an den "Rändern" nicht überprüft werden.
Außerdem gibt er einige werte als false aus obwohl true rauskommen sollte. (Ich denke eben genau wegen meines letzten Satzes)
Z.B.:
2D-Array:
a b c
e e b
k l m
Hier sollte true rauskommen wegen 'b', tut es aber nicht.
Danke schonmal für die Antworten.
MfG, Taso44
ich bin gerade dabei ein vier gewinnt spiel zu programmieren.
Ich komme leider nicht mit der Überprüfung klar, ob ein Spieler gewonnen hat.
Bei der Überprüfung auf die Diagonale habe ich folgende Methode:
Java:
public static boolean win(char[][] feld) {
for (int i = 1; i < feld.length - 1; i++) {
for (int e = 1; e < feld[i].length - 1; e++) {
if (feld[i][e] == feld[i - 1][e - 1]) {
return true;
}
}
}
return false;
}
Das Problem darin sehe ich so, dass die Zeichen an den "Rändern" nicht überprüft werden.
Außerdem gibt er einige werte als false aus obwohl true rauskommen sollte. (Ich denke eben genau wegen meines letzten Satzes)
Z.B.:
2D-Array:
a b c
e e b
k l m
Hier sollte true rauskommen wegen 'b', tut es aber nicht.
Danke schonmal für die Antworten.
MfG, Taso44