|
|
|
|
|
|
|
|
import java.util.Scanner; |
|
|
import java.util.Scanner; |
|
|
|
|
|
|
|
|
public class ManualBot extends Bot { |
|
|
public class ManualBot extends Bot { |
|
|
|
|
|
|
|
|
private Scanner scanner; |
|
|
|
|
|
|
|
|
|
|
|
public ManualBot(String[] args) { |
|
|
|
|
|
super(args); |
|
|
|
|
|
this.scanner = new Scanner(System.in); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) { |
|
|
|
|
|
ManualBot manualBot = new ManualBot(args); |
|
|
|
|
|
manualBot.run(); |
|
|
|
|
|
|
|
|
public ManualBot(String[] args) { |
|
|
|
|
|
super(args); // Aufruf des Konstruktors der Oberklasse Bot |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
protected char nextMove(View view) throws Exception { |
|
|
protected char nextMove(View view) throws Exception { |
|
|
Scanner scanner = new Scanner(System.in); |
|
|
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; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// 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); |
|
|
|
|
|
|
|
|
private boolean isValidMove(char move) { |
|
|
|
|
|
|
|
|
// Verarbeiten Sie den eingegebenen Befehl gemäß der Umsetzungstabelle |
|
|
switch (move) { |
|
|
switch (move) { |
|
|
case 'w': |
|
|
|
|
|
case 's': |
|
|
|
|
|
case 'a': |
|
|
|
|
|
case 'd': |
|
|
|
|
|
case 'q': |
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
|
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: |
|
|
default: |
|
|
System.out.println("Falsche Taste. Bitte geben Sie w, s, a, d oder q ein."); |
|
|
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 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(); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |