From fd64af0bbab53b547a6720fd2ec813b69062cc67 Mon Sep 17 00:00:00 2001 From: Aylin Goekce Date: Sat, 3 Feb 2024 11:25:50 +0000 Subject: [PATCH] =?UTF-8?q?Dateien=20hochladen=20nach=20=E2=80=9E=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ManualBot.java | 66 ++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 37 deletions(-) diff --git a/ManualBot.java b/ManualBot.java index a5a40ef..d266beb 100644 --- a/ManualBot.java +++ b/ManualBot.java @@ -3,48 +3,40 @@ package bot; import java.util.Scanner; public class ManualBot extends Bot { - - private Scanner scanner; - + public ManualBot(String[] args) { - super(args); - this.scanner = new Scanner(System.in); + super(args); // Aufruf des Konstruktors der Oberklasse Bot + } + + @Override + protected char nextMove(View view) throws Exception { + Scanner scanner = new Scanner(System.in); + + // Benutzer zur Eingabe eines Befehls auffordern + System.out.println("Bitte geben Sie einen Befehl ein (w, s, a, d, q): "); + char move = scanner.nextLine().charAt(0); + + // Verarbeiten Sie den eingegebenen Befehl gemäß der Umsetzungstabelle + switch (move) { + case 'w': // vorwärts bewegen + case 's': // rückwärts bewegen + case 'a': // nach links drehen + case 'd': // nach rechts drehen + return move; // Rückgabe des verarbeiteten Befehls an die run-Methode + case 'q': // Verbindung beenden + System.out.println("Verbindung wird beendet."); + System.exit(0); // Das Programm beenden, um die Verbindung zu schließen + break; + default: + System.out.println("Falsche Taste. Bitte geben Sie w, s, a, d oder q ein."); + } + + // Falls der Befehl nicht gültig war, rekursiv nächsten Befehl abfragen + return nextMove(view); } public static void main(String[] args) { ManualBot manualBot = new ManualBot(args); manualBot.run(); } - - @Override - protected char nextMove(View view) throws Exception { - Scanner scanner = new Scanner(System.in); - char move; - - do { - System.out.println("Bitte geben Sie einen Steuerbefehl ein (w, s, a, d, q): "); - move = scanner.nextLine().toLowerCase().charAt(0); - } while (!isValidMove(move)); - - return move; - } - - private boolean isValidMove(char move) { - switch (move) { - case 'w': - case 's': - case 'a': - case 'd': - case 'q': - return true; - default: - System.out.println("Falsche Taste. Bitte geben Sie w, s, a, d oder q ein."); - return false; - } - } - - public void run() { - startCommunication(); - // hier muss die Logik für die Verbindung implementiert werden - } }