From 1453ff4717de097c8a5de0e0134a82b84ddbdf28 Mon Sep 17 00:00:00 2001 From: Oliver Hummel Date: Tue, 21 Nov 2023 17:02:27 +0100 Subject: [PATCH] =?UTF-8?q?Code=20weiter=20aufger=C3=A4umt=20(engl.=20Refa?= =?UTF-8?q?ctoring).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 4Gewinnt/src/VierGewinnt.java | 62 +++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/4Gewinnt/src/VierGewinnt.java b/4Gewinnt/src/VierGewinnt.java index 46cb981..1b9018f 100644 --- a/4Gewinnt/src/VierGewinnt.java +++ b/4Gewinnt/src/VierGewinnt.java @@ -1,41 +1,28 @@ import java.util.Scanner; public class VierGewinnt { - + static Scanner kb = new Scanner(System.in); // sog. Klassenvariable + 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); + int steineZähler = 0; // Gewinner Loop boolean gewonnen = false; do { 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); - + + int[] koordinate = spielsteinEinwerfen(spielfeld, spieler); + gewonnen = gewinnerPrüfung(spielfeld, koordinate[0], koordinate[1]); + spielfeldAusgeben(spielfeld); - - gewonnen = gewinnerPrüfung(spielfeld, zeile, spalte); } while(!gewonnen && ++steineZähler < 42); if (!gewonnen && steineZähler == 42) { @@ -49,13 +36,6 @@ public class VierGewinnt { 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]; @@ -67,7 +47,7 @@ public class VierGewinnt { return spielfeld; } - + public static void spielfeldAusgeben(char[][] spielfeld) { System.out.println(); @@ -91,6 +71,29 @@ public class VierGewinnt { System.out.println(); } + public static char spielerWechseln(char spieler) { + if (spieler == 'o') + return 'x'; + + return 'o'; + } + + public static int[] spielsteinEinwerfen(char[][] spielfeld, char spieler) { + int zeile, spalte; + + 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); + + return new int[] {zeile, spalte}; + } + public static int einwurfVerarbeiten(char[][] spielfeld, int spalte, char stein) { if (spalte < 0 || spalte > 6) return -1; @@ -152,4 +155,5 @@ public class VierGewinnt { return false; } -} \ No newline at end of file + +} // eof \ No newline at end of file