diff --git a/4Gewinnt/src/VierGewinnt.java b/4Gewinnt/src/VierGewinnt.java index 2affc45..e2746d1 100644 --- a/4Gewinnt/src/VierGewinnt.java +++ b/4Gewinnt/src/VierGewinnt.java @@ -7,42 +7,46 @@ public class VierGewinnt { // Game Loop Scanner kb = new Scanner(System.in); + boolean weiter = false; - char spieler = 'o'; + char spieler = 'x'; do { char[][] spielfeld = spielfeldInitialisieren(); + int steineZähler = 0; spielfeldAusgeben(spielfeld); // Gewinner Loop boolean gewonnen = false; do { - // wer ist dran? + if (spieler == 'o') + spieler = 'x'; + else + spieler = 'o'; // Spielstein einwerfen + int spalte; do { 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)) System.err.println("Ungültige Auswahl!"); else break; } while(true); + steineZähler++; spielfeldAusgeben(spielfeld); - - if (spieler == 'o') - spieler = 'x'; - else - spieler = 'o'; - - // Gewinnerprüfung - - - } while(!gewonnen); + + gewonnen = gewinnerPrüfung(spielfeld, spalte); + } while(!gewonnen && steineZähler < 42); - // 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); @@ -85,8 +89,6 @@ public class VierGewinnt { } public static boolean einwurfVerarbeiten(char[][] spielfeld, int spalte, char stein) { - spalte--; // Da die Eingabe von 1 bis 7 war. - if (spalte < 0 || spalte > 6) return false; @@ -103,4 +105,15 @@ public class VierGewinnt { 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; + } }