Aufgabe 3 und 4 ausgeführt.
This commit is contained in:
parent
fc8986f3ae
commit
1b6c99830d
47
Raum.java
47
Raum.java
|
@ -1,3 +1,6 @@
|
|||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Diese Klasse modelliert Räume in der Welt von Zuul.
|
||||
*
|
||||
|
@ -12,11 +15,8 @@
|
|||
*/
|
||||
public class Raum
|
||||
{
|
||||
public String beschreibung;
|
||||
public Raum nordausgang;
|
||||
public Raum suedausgang;
|
||||
public Raum ostausgang;
|
||||
public Raum westausgang;
|
||||
private String beschreibung;
|
||||
private HashMap<String, Raum> ausgaenge;
|
||||
|
||||
/**
|
||||
* Erzeuge einen Raum mit einer Beschreibung. Ein Raum
|
||||
|
@ -29,30 +29,25 @@ public class Raum
|
|||
this.beschreibung = beschreibung;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Definiere die Ausgänge dieses Raums. Jede Richtung
|
||||
* führt entweder in einen anderen Raum oder ist 'null'
|
||||
* (kein Ausgang).
|
||||
* @param norden Der Nordausgang.
|
||||
* @param osten Der Ostausgang.
|
||||
* @param sueden Der Südausgang.
|
||||
* @param westen Der Westausgang.
|
||||
* Definiere die Ausgänge dieses Raums. Jeder Ausgang führt in einen anderen Raum.
|
||||
* @param richtung Die Richtung des Ausgangs der geändert werden soll.
|
||||
* @param raum Das Raumobjekt
|
||||
*/
|
||||
public void setzeAusgaenge(Raum norden, Raum osten,
|
||||
Raum sueden, Raum westen)
|
||||
public void setzeAusgaenge(String richtung, Raum raum)
|
||||
{
|
||||
if(norden != null) {
|
||||
nordausgang = norden;
|
||||
if(raum != null && richtung != null){
|
||||
ausgaenge.put(richtung, raum);
|
||||
}
|
||||
if(osten != null) {
|
||||
ostausgang = osten;
|
||||
}
|
||||
if(sueden != null) {
|
||||
suedausgang = sueden;
|
||||
}
|
||||
if(westen != null) {
|
||||
westausgang = westen;
|
||||
}
|
||||
|
||||
public String gibAusgaengeAlsString() {
|
||||
String ausgaengeAlsString = "";
|
||||
for(String ausgang : ausgaenge.keySet()){
|
||||
ausgaengeAlsString += ausgang + " ";
|
||||
}
|
||||
return ausgaengeAlsString;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -62,4 +57,8 @@ public class Raum
|
|||
{
|
||||
return beschreibung;
|
||||
}
|
||||
|
||||
public Raum gibAusgang(String richtung) {
|
||||
return ausgaenge.get(richtung);
|
||||
}
|
||||
}
|
||||
|
|
47
Spiel.java
47
Spiel.java
|
@ -19,7 +19,7 @@
|
|||
|
||||
public class Spiel
|
||||
{
|
||||
private Parser parser;
|
||||
private final Parser parser;
|
||||
private Raum aktuellerRaum;
|
||||
|
||||
/**
|
||||
|
@ -46,11 +46,18 @@ public class Spiel
|
|||
buero = new Raum("im Verwaltungsbüro der Informatik");
|
||||
|
||||
// die Ausgänge initialisieren
|
||||
draussen.setzeAusgaenge(null, hoersaal, labor, cafeteria);
|
||||
hoersaal.setzeAusgaenge(null, null, null, draussen);
|
||||
cafeteria.setzeAusgaenge(null, draussen, null, null);
|
||||
labor.setzeAusgaenge(draussen, buero, null, null);
|
||||
buero.setzeAusgaenge(null, null, null, labor);
|
||||
draussen.setzeAusgaenge("Ost", hoersaal);
|
||||
draussen.setzeAusgaenge("Süd", labor);
|
||||
draussen.setzeAusgaenge("West", cafeteria);
|
||||
|
||||
hoersaal.setzeAusgaenge("West", draussen);
|
||||
|
||||
cafeteria.setzeAusgaenge("Ost", draussen);
|
||||
|
||||
labor.setzeAusgaenge("Nord", draussen);
|
||||
labor.setzeAusgaenge("Ost", buero);
|
||||
|
||||
buero.setzeAusgaenge("West", labor);
|
||||
|
||||
aktuellerRaum = draussen; // das Spiel startet draussen
|
||||
}
|
||||
|
@ -146,19 +153,7 @@ public class Spiel
|
|||
String richtung = befehl.gibZweitesWort();
|
||||
|
||||
// Wir versuchen, den Raum zu verlassen.
|
||||
Raum naechsterRaum = null;
|
||||
if(richtung.equals("north")) {
|
||||
naechsterRaum = aktuellerRaum.nordausgang;
|
||||
}
|
||||
if(richtung.equals("east")) {
|
||||
naechsterRaum = aktuellerRaum.ostausgang;
|
||||
}
|
||||
if(richtung.equals("south")) {
|
||||
naechsterRaum = aktuellerRaum.suedausgang;
|
||||
}
|
||||
if(richtung.equals("west")) {
|
||||
naechsterRaum = aktuellerRaum.westausgang;
|
||||
}
|
||||
Raum naechsterRaum = aktuellerRaum.gibAusgang(richtung);
|
||||
|
||||
if (naechsterRaum == null) {
|
||||
System.out.println("Dort ist keine Tür!");
|
||||
|
@ -172,19 +167,7 @@ public class Spiel
|
|||
private void rauminfoAusgeben() {
|
||||
System.out.println("Sie sind " + aktuellerRaum.gibBeschreibung());
|
||||
System.out.print("Ausgänge: ");
|
||||
if (aktuellerRaum.nordausgang != null) {
|
||||
System.out.print("north ");
|
||||
}
|
||||
if (aktuellerRaum.ostausgang != null) {
|
||||
System.out.print("east ");
|
||||
}
|
||||
if (aktuellerRaum.suedausgang != null) {
|
||||
System.out.print("south ");
|
||||
}
|
||||
if (aktuellerRaum.westausgang != null) {
|
||||
System.out.print("west ");
|
||||
}
|
||||
System.out.println();
|
||||
System.out.println(aktuellerRaum.gibAusgaengeAlsString());
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue