import java.util.HashMap; import java.util.Set; /** * Diese Klasse modelliert Räume in der Welt von Zuul. * * Ein "Raum" repräsentiert einen Ort in der virtuellen Landschaft des * Spiels. Ein Raum ist mit anderen Räumen über Ausgänge verbunden. * Mögliche Ausgänge liegen im Norden, Osten, Süden und Westen. * Für jede Richtung hält ein Raum eine Referenz auf den * benachbarten Raum. * * @author Michael Kölling und David J. Barnes * @version 31.07.2011 */ public class Raum { private String beschreibung; private HashMap ausgaenge; /** * Erzeuge einen Raum mit einer Beschreibung. Ein Raum * hat anfangs keine Ausgänge. * @param beschreibung enthält eine Beschreibung in der Form * "in einer Küche" oder "auf einem Sportplatz". */ public Raum(String beschreibung) { this.beschreibung = beschreibung; } /** * 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(String richtung, Raum raum) { if(raum != null && richtung != null){ ausgaenge.put(richtung, raum); } } /** * @return die Beschreibung dieses Raums. */ public String gibBeschreibung() { return beschreibung; } public String gibLangeBeschreibung() { return "Sie sind " + gibBeschreibung() + "\nAusgänge: " + gibAusgaengeAlsString(); } private String gibAusgaengeAlsString() { String ausgaengeAlsString = ""; for(String ausgang : ausgaenge.keySet()){ ausgaengeAlsString += ausgang + " "; } return ausgaengeAlsString; } public Raum gibAusgang(String richtung) { return ausgaenge.get(richtung); } }