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