Aufgabe 3 ausgeführt.

This commit is contained in:
schrom01 2021-11-16 17:31:01 +01:00
parent e7f050813a
commit cfbdaa25de
2 changed files with 52 additions and 45 deletions

View File

@ -7,46 +7,49 @@ import java.util.HashSet;
* @author tebe * @author tebe
* @version 1.0 * @version 1.0
*/ */
public class Befehlswort { public enum Befehlswort {
// Ein HashSet mit den gueltigen Befehlswoertern als Klassenvariable UNBEKANNT("unbekannt"), GEHE("gehe"), HILFE("hilfe"), BEENDEN("beenden");
private static final HashSet<String> gueltigeBefehle = new HashSet<String>();
static { /*
gueltigeBefehle.add("gehe"); Das Befehlswort als String
gueltigeBefehle.add("beenden"); */
gueltigeBefehle.add("hilfe"); private String befehl;
public static Befehlswort gibBefehlswort(String wort) {
for(Befehlswort befehlswort : Befehlswort.values()){
if(befehlswort.getBefehl().equals(wort)) {
return befehlswort;
}
}
return null;
} }
/**
* Konstruktor - initialisiere die Befehlswörter.
*/
public Befehlswort()
{
// tut momentan nichts
}
/**
* Pruefe, ob eine gegebene Zeichenkette ein gueltiger
* Befehl ist.
*
* @return 'true', wenn die gegebene Zeichenkette ein gueltiger
* Befehl ist, 'false' sonst.
*/
public static boolean istBefehl(String eingabe)
{
return gueltigeBefehle.contains(eingabe);
}
/**
* Gibt die akzeptierten Befehlsworte als Text zurueck.
*
* @return Die akzeptierten Befehlsworte als Text
*/
public static String gibBefehlsworteAlsText() { public static String gibBefehlsworteAlsText() {
String text = ""; String string = "";
for (String befehl : gueltigeBefehle) { for(Befehlswort befehlswort : Befehlswort.values()){
text = text + befehl + " "; string += befehlswort.getBefehl() + " ";
} }
return text; return string;
} }
/**
* Konstruktor - Speichere das Befehlswort als String
* @param befehlswort
*/
Befehlswort(String befehlswort)
{
this.befehl = befehlswort;
}
/**
* Gibt das Datenfeld befehl zurueck.
*
* @return Das Befehlswort als String
*/
public String getBefehl() {
return befehl;
}
} }

View File

@ -1,3 +1,6 @@
import java.util.Arrays;
import java.util.List;
/** /**
* Diese Klasse verarbeitet Befehle vom Typ * Diese Klasse verarbeitet Befehle vom Typ
* {@link Befehl Befehl} und löst die dazu * {@link Befehl Befehl} und löst die dazu
@ -16,15 +19,16 @@ public class Kontroller {
*/ */
public boolean verarbeiteBefehl(Befehl befehl) { public boolean verarbeiteBefehl(Befehl befehl) {
boolean macheWeiter = true; boolean macheWeiter = true;
String befehlswort = befehl.gibBefehlswort(); String befehlswortString = befehl.gibBefehlswort();
if (Befehlswort.istBefehl(befehlswort)) { if (Arrays.asList(Befehlswort.gibBefehlsworteAlsText().split(" ")).contains(befehlswortString)) {
if (befehlswortString.equals(Befehlswort.GEHE.getBefehl())) {
if (befehlswort.equals("gehe")) { System.out.println("Befehl LAUFE " + befehl.gibZweitesWort() + " wird ausgefuehrt");
System.out.println("Befehl GEHE " + befehl.gibZweitesWort() + " wird ausgefuehrt"); } else if (befehlswortString.equals(Befehlswort.HILFE.getBefehl())) {
} else if (befehlswort.equals("hilfe")) { System.out.println("Gueltige Befehle: ");
System.out.println("Gueltige Befehle: " for(Befehlswort befehlswort : Befehlswort.values()) {
+ Befehlswort.gibBefehlsworteAlsText()); System.out.println(befehlswort.getBefehl());
} else if (befehlswort.equals("beenden")) { }
} else if (befehlswortString.equals(Befehlswort.BEENDEN.getBefehl())) {
System.out.println("Befehl BEENDEN wird ausgefuehrt."); System.out.println("Befehl BEENDEN wird ausgefuehrt.");
macheWeiter = false; macheWeiter = false;
} else { } else {