forked from hummel/4Gewinnt-WS23
Horizontale Gewinnerprüfung hinzugefügt.
parent
ff21f11182
commit
4a6cef9fed
|
@ -25,12 +25,12 @@ public class VierGewinnt {
|
||||||
spieler = 'o';
|
spieler = 'o';
|
||||||
|
|
||||||
// Spielstein einwerfen
|
// Spielstein einwerfen
|
||||||
int spalte;
|
int spalte, zeile;
|
||||||
do {
|
do {
|
||||||
System.out.print("Spieler " + spieler + ", bitte wählen Sie eine Spalte aus: ");
|
System.out.print("Spieler " + spieler + ", bitte wählen Sie eine Spalte aus: ");
|
||||||
spalte = kb.nextInt() - 1; // da Spalte eins verschoben
|
spalte = kb.nextInt() - 1; // da Spalte eins verschoben
|
||||||
|
|
||||||
if (!einwurfVerarbeiten(spielfeld, spalte, spieler))
|
if ((zeile = einwurfVerarbeiten(spielfeld, spalte, spieler)) == -1)
|
||||||
System.err.println("Ungültige Auswahl!");
|
System.err.println("Ungültige Auswahl!");
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
|
@ -39,7 +39,7 @@ public class VierGewinnt {
|
||||||
|
|
||||||
spielfeldAusgeben(spielfeld);
|
spielfeldAusgeben(spielfeld);
|
||||||
|
|
||||||
gewonnen = gewinnerPrüfung(spielfeld, spalte);
|
gewonnen = gewinnerPrüfung(spielfeld, zeile, spalte);
|
||||||
} while(!gewonnen && steineZähler < 42);
|
} while(!gewonnen && steineZähler < 42);
|
||||||
|
|
||||||
if (!gewonnen && steineZähler == 42) {
|
if (!gewonnen && steineZähler == 42) {
|
||||||
|
@ -88,24 +88,26 @@ public class VierGewinnt {
|
||||||
System.out.println();
|
System.out.println();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean einwurfVerarbeiten(char[][] spielfeld, int spalte, char stein) {
|
public static int einwurfVerarbeiten(char[][] spielfeld, int spalte, char stein) {
|
||||||
if (spalte < 0 || spalte > 6)
|
if (spalte < 0 || spalte > 6)
|
||||||
return false;
|
return -1;
|
||||||
|
|
||||||
for (int z = spielfeld.length - 1; z >= 0 ; z--) {
|
for (int z = spielfeld.length - 1; z >= 0 ; z--) {
|
||||||
if (spielfeld[z][spalte] != '_' && z == 0) // Spalte voll?
|
if (spielfeld[z][spalte] != '_' && z == 0) // Spalte voll?
|
||||||
return false;
|
return -1;
|
||||||
|
|
||||||
if (spielfeld[z][spalte] == '_') {
|
if (spielfeld[z][spalte] == '_') {
|
||||||
spielfeld[z][spalte] = stein;
|
spielfeld[z][spalte] = stein;
|
||||||
return true;
|
return z;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean gewinnerPrüfung(char[][] spielfeld, int spalte) {
|
public static boolean gewinnerPrüfung(char[][] spielfeld, int zeile, int spalte) {
|
||||||
|
|
||||||
|
// vertikale Prüfung
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
if (spielfeld[0 + i][spalte] == spielfeld[1 + i][spalte]
|
if (spielfeld[0 + i][spalte] == spielfeld[1 + i][spalte]
|
||||||
&& spielfeld[0 + i][spalte] == spielfeld[2 + i][spalte]
|
&& spielfeld[0 + i][spalte] == spielfeld[2 + i][spalte]
|
||||||
|
@ -114,6 +116,15 @@ public class VierGewinnt {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// horizontale Prüfung
|
||||||
|
for (int i = 0; i < 4; i++) {
|
||||||
|
if (spielfeld[zeile][0 + i] == spielfeld[zeile][1 + i]
|
||||||
|
&& spielfeld[zeile][0 + i] == spielfeld[zeile][2 + i]
|
||||||
|
&& spielfeld[zeile][0 + i] == spielfeld[zeile][3 + i]
|
||||||
|
&& spielfeld[zeile][0 + i] != '_')
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue