Kusarr
Software-Overclocker(in)
java ~ Diagonale eines Arrays überprüfen
Servus Leute,
versuche mich gerade an einem 4-Gewinnt zu programmieren.
Hab auch soweit alles fertig auser eines, und zwar die Überprüfung der Diagonalen vom Spielfeld.
Spalten- und Zeilenüberprüfung war easy, aber hier hängts.
(um die dritte for-schleife gehts)
und ja, es sind zwei for-schleifen nötig. einmal von linksoben nach rechtsunten und einmal von rechtsoben nach linksunten. hab aber erst mal eine versucht.
wo isn der fehler?
Problem ist, es passiert einfach NICHTS wenn ich 4 in der digonale eingegeben hab, ich kann einfach weiter meine spielsteine setzen.
Servus Leute,
versuche mich gerade an einem 4-Gewinnt zu programmieren.
Hab auch soweit alles fertig auser eines, und zwar die Überprüfung der Diagonalen vom Spielfeld.
Spalten- und Zeilenüberprüfung war easy, aber hier hängts.
(um die dritte for-schleife gehts)
und ja, es sind zwei for-schleifen nötig. einmal von linksoben nach rechtsunten und einmal von rechtsoben nach linksunten. hab aber erst mal eine versucht.
Code:
public boolean isSpielZuEnde() {
int spalte, zeile;
for (spalte = 0; spalte < 7; spalte++) {
int zaehlerA = 0, zaehlerB = 0;
for (zeile = 0; zeile < 6; zeile++) {
if (getFeld(spalte, zeile) == 1) {
zaehlerA += 1;
zaehlerB = 0;
} else if (getFeld(spalte, zeile) == 2) {
zaehlerB += 1;
zaehlerA = 0;
}
if (zaehlerA == 4 || zaehlerB == 4) {
this.unentschieden = false;
return true;
}
}
}
for (zeile = 0; zeile < 6; zeile++) {
int zaehlerA = 0, zaehlerB = 0;
for (spalte = 0; spalte < 7; spalte++) {
if (getFeld(spalte, zeile) == 1) {
zaehlerA += 1;
zaehlerB = 0;
} else if (getFeld(spalte, zeile) == 2) {
zaehlerB += 1;
zaehlerA = 0;
}
if (zaehlerA == 4 || zaehlerB == 4) {
this.unentschieden = false;
return true;
}
}
}
for (spalte = 0; spalte < 4; spalte++) {
int spalte2 = 0, zeile2 = 0;
for (zeile = 0; zeile < 3; zeile++) {
spalte2 = 0;
zeile2 = 0;
int zaehlerA = 0, zaehlerB = 0;
do {
if (getFeld(spalte2, zeile2) == 1) {
zaehlerA += 1;
zaehlerB = 0;
} else if (getFeld(spalte2, zeile2) == 2) {
zaehlerB += 1;
zaehlerA = 0;
}
if (zaehlerA == 4 || zaehlerB == 4) {
this.unentschieden = false;
return true;
}
spalte2++;
zeile2++;
} while (zeile2 < 3 && spalte2 < 4);
}
}
for (spalte = 0; spalte < 7; spalte++) {
if (getFeld(spalte, 0) == 0) {
return false;
}
}
return true;
}
wo isn der fehler?
Problem ist, es passiert einfach NICHTS wenn ich 4 in der digonale eingegeben hab, ich kann einfach weiter meine spielsteine setzen.