06_Praktikum-1_Zuul-schlecht/Raum.java

72 lines
1.9 KiB
Java
Raw Permalink Normal View History

2021-11-18 16:22:03 +01:00
import java.util.HashMap;
import java.util.Set;
2017-09-17 17:06:55 +02:00
/**
* 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
*/
2017-10-23 13:20:05 +02:00
public class Raum
{
2021-11-18 16:22:03 +01:00
private String beschreibung;
private HashMap<String, Raum> ausgaenge;
2017-09-17 17:06:55 +02:00
2017-10-23 13:20:05 +02:00
/**
* 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;
}
2017-09-17 17:06:55 +02:00
2021-11-18 16:22:03 +01:00
2017-10-23 13:20:05 +02:00
/**
2021-11-18 16:22:03 +01:00
* 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
2017-10-23 13:20:05 +02:00
*/
2021-11-18 16:22:03 +01:00
public void setzeAusgaenge(String richtung, Raum raum)
2017-10-23 13:20:05 +02:00
{
2021-11-18 16:22:03 +01:00
if(raum != null && richtung != null){
ausgaenge.put(richtung, raum);
2017-10-23 13:20:05 +02:00
}
2021-11-18 16:22:03 +01:00
}
2021-11-18 16:27:19 +01:00
2017-09-17 17:06:55 +02:00
2017-10-23 13:20:05 +02:00
/**
* @return die Beschreibung dieses Raums.
*/
public String gibBeschreibung()
{
return beschreibung;
}
2021-11-18 16:22:03 +01:00
2021-11-18 16:27:19 +01:00
public String gibLangeBeschreibung() {
return "Sie sind " + gibBeschreibung() + "\nAusgänge: " + gibAusgaengeAlsString();
}
private String gibAusgaengeAlsString() {
String ausgaengeAlsString = "";
for(String ausgang : ausgaenge.keySet()){
ausgaengeAlsString += ausgang + " ";
}
return ausgaengeAlsString;
}
2021-11-18 16:22:03 +01:00
public Raum gibAusgang(String richtung) {
return ausgaenge.get(richtung);
}
2017-09-17 17:06:55 +02:00
}