diff --git a/4Gewinnt/src/VierGewinnt.java b/4Gewinnt/src/VierGewinnt.java index 09b0f8c..2749fd8 100644 --- a/4Gewinnt/src/VierGewinnt.java +++ b/4Gewinnt/src/VierGewinnt.java @@ -1,89 +1,93 @@ import java.util.Scanner; public class VierGewinnt { - + public static void main(String[] args) { System.out.println("Willkommen zu 4 Gewinnt!"); - + // Game Loop Scanner kb = new Scanner(System.in); - + boolean weiter = false; char spieler = 'x'; do { char[][] spielfeld = spielfeldInitialisieren(); int steineZähler = 0; - + spielfeldAusgeben(spielfeld); - + // Gewinner Loop boolean gewonnen = false; do { - if (spieler == 'o') - spieler = 'x'; - else - spieler = 'o'; - + spieler = spielerWechseln(spieler); + // Spielstein einwerfen int spalte, zeile; do { System.out.print("Spieler " + spieler + ", bitte wählen Sie eine Spalte aus: "); spalte = kb.nextInt() - 1; // da Spalte eins verschoben - + if ((zeile = einwurfVerarbeiten(spielfeld, spalte, spieler)) == -1) System.err.println("Ungültige Auswahl!"); else break; } while(true); steineZähler++; - + spielfeldAusgeben(spielfeld); gewonnen = gewinnerPrüfung(spielfeld, zeile, spalte); } while(!gewonnen && steineZähler < 42); - + if (!gewonnen && steineZähler == 42) { System.out.println("Das Spiel endet unentschieden."); } else { System.out.println("Es gewinnt Spieler " + spieler); } - + } while (weiter); - + System.out.println("Auf Wiedersehen!"); } // main + public static char spielerWechseln(char spieler) { + if (spieler == 'o') + return 'x'; + + return 'o'; + } + public static char[][] spielfeldInitialisieren() { char[][] spielfeld = new char[6][7]; - + for (int z = 0; z < spielfeld.length; z++) { for (int s = 0; s < spielfeld[z].length; s++) { spielfeld[z][s] = '_'; } } - + return spielfeld; } - + public static void spielfeldAusgeben(char[][] spielfeld) { System.out.println(); - + // Alle Zeilen ausgeben for (int z = 0; z < spielfeld.length; z++) { - + // Alle Spalten der z-ten Zeile ausgeben for (int s = 0; s < spielfeld[z].length; s++) { System.out.print("| " + spielfeld[z][s] + " " ); } System.out.println("|"); } - + System.out.println(); - + for (int s = 0; s < spielfeld[0].length; s++) { System.out.print("| " + (s+1) + " " ); } - + System.out.println("|"); System.out.println(); } @@ -91,22 +95,22 @@ public class VierGewinnt { public static int einwurfVerarbeiten(char[][] spielfeld, int spalte, char stein) { if (spalte < 0 || spalte > 6) return -1; - + for (int z = spielfeld.length - 1; z >= 0 ; z--) { if (spielfeld[z][spalte] != '_' && z == 0) // Spalte voll? return -1; - + if (spielfeld[z][spalte] == '_') { spielfeld[z][spalte] = stein; return z; } } - + return -1; } public static boolean gewinnerPrüfung(char[][] spielfeld, int zeile, int spalte) { - + // vertikale Prüfung for (int i = 0; i < 3; i++) { if (spielfeld[0 + i][spalte] == spielfeld[1 + i][spalte] @@ -115,7 +119,7 @@ public class VierGewinnt { && spielfeld[0 + i][spalte] != '_') return true; } - + // horizontale Prüfung for (int i = 0; i < 4; i++) { if (spielfeld[zeile][0 + i] == spielfeld[zeile][1 + i] @@ -149,4 +153,4 @@ public class VierGewinnt { return false; } -} +} \ No newline at end of file