From 8bdb92a5861e59dd62603a1adb8f600e390ec002 Mon Sep 17 00:00:00 2001 From: Oliver Hummel Date: Thu, 9 Nov 2023 11:57:11 +0100 Subject: [PATCH] Eingabe der Spalte verbessert. --- 4Gewinnt/src/VierGewinnt.java | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/4Gewinnt/src/VierGewinnt.java b/4Gewinnt/src/VierGewinnt.java index ffdbc7a..7ff7a51 100644 --- a/4Gewinnt/src/VierGewinnt.java +++ b/4Gewinnt/src/VierGewinnt.java @@ -19,12 +19,17 @@ public class VierGewinnt { do { // wer ist dran? - // Spielstein einwerfen -> Auswahl welche Spalte - System.out.print("Spieler " + spieler + ", bitte wählen Sie eine Spalte aus: "); - int spalte = kb.nextInt(); - - einwurfVerarbeiten(spielfeld, spalte, spieler); + // Spielstein einwerfen + do { + System.out.print("Spieler " + spieler + ", bitte wählen Sie eine Spalte aus: "); + int spalte = kb.nextInt(); + if (!einwurfVerarbeiten(spielfeld, spalte, spieler)) + System.err.println("Ungültige Auswahl!"); + else + break; + } while(true); + spielfeldAusgeben(spielfeld); // Gewinnerprüfung @@ -73,17 +78,23 @@ public class VierGewinnt { System.out.println(); } - public static void einwurfVerarbeiten(char[][] spielfeld, int spalte, char stein) { - // Was machen wir, wenn die Spalte schon voll ist? - - spalte--; // Da die Eingabe von 1 bis 7 war. + 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; for (int z = 0; z < spielfeld.length; z++) { + if (spielfeld[z][spalte] != '_' && z == 0) // Spalte voll? + return false; + if (spielfeld[z][spalte] != '_' || z == spielfeld.length-1) { spielfeld[z][spalte] = stein; - return; + return true; } } + + return false; } }