72 lines
1.9 KiB
Java
72 lines
1.9 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);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* @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);
|
|
}
|
|
}
|