06_Praktikum-1_Zuul-schlecht/Raum.java

65 lines
1.7 KiB
Java

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<String, Raum> 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);
}
}
public String gibAusgaengeAlsString() {
String ausgaengeAlsString = "";
for(String ausgang : ausgaenge.keySet()){
ausgaengeAlsString += ausgang + " ";
}
return ausgaengeAlsString;
}
/**
* @return die Beschreibung dieses Raums.
*/
public String gibBeschreibung()
{
return beschreibung;
}
public Raum gibAusgang(String richtung) {
return ausgaenge.get(richtung);
}
}