forked from hummel/4Gewinnt-WS23
Vertikale Gewinnerprüfung eingebaut.
parent
e11e77001d
commit
ff21f11182
|
@ -7,42 +7,46 @@ public class VierGewinnt {
|
||||||
|
|
||||||
// Game Loop
|
// Game Loop
|
||||||
Scanner kb = new Scanner(System.in);
|
Scanner kb = new Scanner(System.in);
|
||||||
|
|
||||||
boolean weiter = false;
|
boolean weiter = false;
|
||||||
char spieler = 'o';
|
char spieler = 'x';
|
||||||
do {
|
do {
|
||||||
char[][] spielfeld = spielfeldInitialisieren();
|
char[][] spielfeld = spielfeldInitialisieren();
|
||||||
|
int steineZähler = 0;
|
||||||
|
|
||||||
spielfeldAusgeben(spielfeld);
|
spielfeldAusgeben(spielfeld);
|
||||||
|
|
||||||
// Gewinner Loop
|
// Gewinner Loop
|
||||||
boolean gewonnen = false;
|
boolean gewonnen = false;
|
||||||
do {
|
do {
|
||||||
// wer ist dran?
|
if (spieler == 'o')
|
||||||
|
spieler = 'x';
|
||||||
|
else
|
||||||
|
spieler = 'o';
|
||||||
|
|
||||||
// Spielstein einwerfen
|
// Spielstein einwerfen
|
||||||
|
int spalte;
|
||||||
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: ");
|
||||||
int spalte = kb.nextInt();
|
spalte = kb.nextInt() - 1; // da Spalte eins verschoben
|
||||||
|
|
||||||
if (!einwurfVerarbeiten(spielfeld, spalte, spieler))
|
if (!einwurfVerarbeiten(spielfeld, spalte, spieler))
|
||||||
System.err.println("Ungültige Auswahl!");
|
System.err.println("Ungültige Auswahl!");
|
||||||
else
|
else
|
||||||
break;
|
break;
|
||||||
} while(true);
|
} while(true);
|
||||||
|
steineZähler++;
|
||||||
|
|
||||||
spielfeldAusgeben(spielfeld);
|
spielfeldAusgeben(spielfeld);
|
||||||
|
|
||||||
if (spieler == 'o')
|
gewonnen = gewinnerPrüfung(spielfeld, spalte);
|
||||||
spieler = 'x';
|
} while(!gewonnen && steineZähler < 42);
|
||||||
else
|
|
||||||
spieler = 'o';
|
|
||||||
|
|
||||||
// Gewinnerprüfung
|
|
||||||
|
|
||||||
|
|
||||||
} while(!gewonnen);
|
|
||||||
|
|
||||||
// Gewinnerausgabe (auch unentschieden)
|
if (!gewonnen && steineZähler == 42) {
|
||||||
|
System.out.println("Das Spiel endet unentschieden.");
|
||||||
|
} else {
|
||||||
|
System.out.println("Es gewinnt Spieler " + spieler);
|
||||||
|
}
|
||||||
|
|
||||||
} while (weiter);
|
} while (weiter);
|
||||||
|
|
||||||
|
@ -85,8 +89,6 @@ public class VierGewinnt {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean einwurfVerarbeiten(char[][] spielfeld, int spalte, char stein) {
|
public static boolean einwurfVerarbeiten(char[][] spielfeld, int spalte, char stein) {
|
||||||
spalte--; // Da die Eingabe von 1 bis 7 war.
|
|
||||||
|
|
||||||
if (spalte < 0 || spalte > 6)
|
if (spalte < 0 || spalte > 6)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -103,4 +105,15 @@ public class VierGewinnt {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean gewinnerPrüfung(char[][] spielfeld, int spalte) {
|
||||||
|
for (int i = 0; i < 3; i++) {
|
||||||
|
if (spielfeld[0 + i][spalte] == spielfeld[1 + i][spalte]
|
||||||
|
&& spielfeld[0 + i][spalte] == spielfeld[2 + i][spalte]
|
||||||
|
&& spielfeld[0 + i][spalte] == spielfeld[3 + i][spalte]
|
||||||
|
&& spielfeld[0 + i][spalte] != '_')
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue