gpa
Class Raum

java.lang.Object
  |
  +--gpa.Raum

public class Raum
extends java.lang.Object


Field Summary
private  java.lang.String aktuellebeschreibung
           
private  java.lang.String gegenstandsliste
           
private  java.util.Vector inventar
           
private  java.lang.String koordinaten
           
private  java.util.Vector personen
           
private  java.lang.String personenliste
           
private  java.lang.String richtungen
           
private  boolean varnorden
           
private  boolean varoben
           
private  boolean varosten
           
private  boolean varsueden
           
private  boolean varunten
           
private  boolean varwesten
           
private  int[][] vorhandeneraeume
           
private  int x_koordinate
           
private  int xmax
           
private  int y_koordinate
           
private  int ymax
           
private  int z_koordinate
           
private  int zmax
           
 
Constructor Summary
Raum(int x, int y, int z, int pxmax, int pymax, int pzmax, int[][] raeume)
          Creates a new instance of Raum
 
Method Summary
 java.lang.String[] alleObjekteAusgeben()
          gibt die Namen aller im Raum vorhandenen Objekte, sowohl die von Gegenständen als auch die von Personen, aus
 java.lang.String beschreibungAusgeben()
          gibt die beschreibung des Raumes aus
 java.net.URL bildName()
          gibt eine URL zurück, die auf das zum Raum gehörige Photo verweist
 Inventargegenstand gegenstandGeben(java.lang.String name)
          sucht nach einem Gegenstand, falls er mitgenommen werden kann, löscht die Methode ihn aus ihrem Inventar und gibt den Gegenstand zurück.
 void gegenstandNehmen(Inventargegenstand ding)
          fügt einen übergebenen Gegenstand ins Inventar ein
private  boolean innerhalbderkarte(int x_koordinate, int y_koordinate, int z_koordinate, int xaendern, int yaendern, int zaendern)
          stellt für einen Satz Koordinaten und eine Richtungsänderung fest, ob der gesuchte Raum noch innerhalb der vorgegebenen Karte liegt
 java.lang.String[] inventarAusgeben()
          gibt die Namen aller im Raum vorhanden Inventargegenstände aus
 java.lang.String inventarBeschreibungAusgeben(java.lang.String name)
          wird beim Untersuchen eines Gegenstandes aufgerufen, überprüft, ob das Inventar des Raumes durch das Untersuchen geändert werden muß, und liefert dann die Beschreibung des Gegenstandes zurück.
 java.lang.String koordinatenAusgeben()
          gibt einen dreistelligen String mit den Koordiaten des Raumes aus Muster: XYZ , X: Stockwerk, Y: senkrechte Achse, Z: waagerechte Achse
static void main(java.lang.String[] args)
           
 boolean norden()
          gibt an, ob man von diesem Raum aus in die genannte Richtung weitergehen kann
private  int nummerFinden(java.lang.String name, java.util.Vector objekte)
          findet zu einem Gegenstandsnamen oder einem Personennamen die zugehörige Nummer.
 boolean oben()
          gibt an, ob man von diesem Raum aus in die genannte Richtung weitergehen kann
 java.lang.String objektBeschreibungAusgeben(java.lang.String objektname)
          liefert die Beschreibung eines Objektes zurück, falls ein Gegenstand mit dem entsprechenden Namen gefunden wird, wird dessen Beschreibung ausgegeben, wird keiner gefunden, sucht die Methode weiter bei den Personen.
private  java.lang.String[] objekteAusgeben(java.util.Vector objekte)
          liefert ein Feld zurück, das alle Namen der vorhandenen Objekte im übergebenen Vektor (Inventar oder Personen) enthält
 int objektNummerFinden(java.lang.String name)
          findet eine Nummer zu einem Namen, sowohl für Gegenstände als auch für Personen.
private  void objektVektorAendern(java.util.Vector objekte, java.lang.String[] neueobjekte, java.lang.String[] entfernteobjekte, boolean ioderp)
          Fügt neue Objekte in einen Vektor ein und löscht alte heraus, es werden der zu bearbeitende Vektor, je eine Liste mit neuen und alten Elementen und ein Parameter, der aussagt, ob Inventargegenstände oder Personen eingefügt werden sollen, übergeben.
 boolean osten()
          gibt an, ob man von diesem Raum aus in die genannte Richtung weitergehen kann
 java.lang.String[] personenAusgeben()
          gibt die Namen aller im Raum vorhandenen Personen aus
 java.lang.String personenBeschreibungAusgeben(java.lang.String name)
          gibt die Beschreibung einer untersuchten Person aus.
 boolean personHatAntwort(java.lang.String name, int antwortnummer)
          gibt an, ob man der Person mit dem angegebenen Namen eine bestimmte Frage stellen kann
 boolean personInteraktiv(java.lang.String name)
          gibt an, ob eine bestimmte Person interaktiv Antworten geben kann.
 int positionFinden(int nummer, java.util.Vector objekte)
          findet die passende Position im Vektor zu einer gegebenen Objektnummer oder wirft eine Exception
 int positionFinden(java.lang.String name, java.util.Vector objekte)
          findet die passende Position im Vektor zu einem gegebenen Objektnamen oder wirft eine Exception
private  boolean raumda(int xaendern, int yaendern, int zaendern)
          stellt fest, ob in einer bestimmten Richtung noch win weiterer Raum liegt.
 java.lang.String reden(int antwortnummer, java.lang.String name)
          Über diese Methode kann man interaktiv mit Personen reden.
 java.lang.String reden(java.lang.String name)
          sucht nach einer Standard-Antwort zu dem angegebenen Personen- namen und gibt diese aus, bei Bedarf wird die Personenliste hierbei geändert
private  boolean richtung(int getesteterichtung)
          verarbeitet die Richtungsangaben, die aus der Datei in werteEinlesen() ausgelesen wurden.
private  void richtungenErrechnen()
          errechnet über verschiedene Unterfunktionen die Richtungen, in die man von diesem Raum aus gehen kann
 boolean sueden()
          gibt an, ob man von diesem Raum aus in die genannte Richtung weitergehen kann
 boolean unten()
          gibt an, ob man von diesem Raum aus in die genannte Richtung weitergehen kann
private  void vektorAnlegen(java.lang.String objektliste, java.util.Vector objektvektor, boolean ioderp)
          Legt den Inventar- oder Personenvektor an, je nach dem, wie der Parameter ioderp gesetzt ist.
private  void werteEinlesen()
          Initialisierungswerte aus Dateien einlesen, es findet noch keine Weiterverarbeitung statt
 boolean westen()
          gibt an, ob man von diesem Raum aus in die genannte Richtung weitergehen kann
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

aktuellebeschreibung

private java.lang.String aktuellebeschreibung

richtungen

private java.lang.String richtungen

gegenstandsliste

private java.lang.String gegenstandsliste

personenliste

private java.lang.String personenliste

x_koordinate

private int x_koordinate

y_koordinate

private int y_koordinate

z_koordinate

private int z_koordinate

xmax

private int xmax

ymax

private int ymax

zmax

private int zmax

varnorden

private boolean varnorden

varsueden

private boolean varsueden

varwesten

private boolean varwesten

varosten

private boolean varosten

varoben

private boolean varoben

varunten

private boolean varunten

koordinaten

private java.lang.String koordinaten

vorhandeneraeume

private int[][] vorhandeneraeume

inventar

private java.util.Vector inventar

personen

private java.util.Vector personen
Constructor Detail

Raum

public Raum(int x,
            int y,
            int z,
            int pxmax,
            int pymax,
            int pzmax,
            int[][] raeume)
Creates a new instance of Raum

Method Detail

koordinatenAusgeben

public java.lang.String koordinatenAusgeben()
gibt einen dreistelligen String mit den Koordiaten des Raumes aus Muster: XYZ , X: Stockwerk, Y: senkrechte Achse, Z: waagerechte Achse


bildName

public java.net.URL bildName()
gibt eine URL zurück, die auf das zum Raum gehörige Photo verweist


personInteraktiv

public boolean personInteraktiv(java.lang.String name)
gibt an, ob eine bestimmte Person interaktiv Antworten geben kann. Wird die Person mit dem übergebenen Namen nicht gefunden, gibt die Methode false zurück.


personHatAntwort

public boolean personHatAntwort(java.lang.String name,
                                int antwortnummer)
gibt an, ob man der Person mit dem angegebenen Namen eine bestimmte Frage stellen kann


werteEinlesen

private void werteEinlesen()
Initialisierungswerte aus Dateien einlesen, es findet noch keine Weiterverarbeitung statt


richtungenErrechnen

private void richtungenErrechnen()
errechnet über verschiedene Unterfunktionen die Richtungen, in die man von diesem Raum aus gehen kann


raumda

private boolean raumda(int xaendern,
                       int yaendern,
                       int zaendern)
stellt fest, ob in einer bestimmten Richtung noch win weiterer Raum liegt. Ist kein benachbarter Raum in dieser Richtung vorhanden, wird per Rekursion in diese Richtung weitergesucht, bis ein Raum gefunden wird (Erfolg) oder das Ende der Karte erreicht ist (Mißerfolg)


innerhalbderkarte

private boolean innerhalbderkarte(int x_koordinate,
                                  int y_koordinate,
                                  int z_koordinate,
                                  int xaendern,
                                  int yaendern,
                                  int zaendern)
stellt für einen Satz Koordinaten und eine Richtungsänderung fest, ob der gesuchte Raum noch innerhalb der vorgegebenen Karte liegt


richtung

private boolean richtung(int getesteterichtung)
verarbeitet die Richtungsangaben, die aus der Datei in werteEinlesen() ausgelesen wurden. Es gibt sechs Angaben für sechs Richtungen: Norden, Süden, Westen, Osten, Oben, Unten


vektorAnlegen

private void vektorAnlegen(java.lang.String objektliste,
                           java.util.Vector objektvektor,
                           boolean ioderp)
Legt den Inventar- oder Personenvektor an, je nach dem, wie der Parameter ioderp gesetzt ist. Die Methode geht die vorhandene Liste mit hinzuzufügenden Objekten der Reihe nach durch und fügt alle in den Vektor ein.


nummerFinden

private int nummerFinden(java.lang.String name,
                         java.util.Vector objekte)
                  throws java.lang.NullPointerException
findet zu einem Gegenstandsnamen oder einem Personennamen die zugehörige Nummer. Wird keine Übereinstimmung gefunden, wirft die Methode eine NullPointerException

java.lang.NullPointerException

objektNummerFinden

public int objektNummerFinden(java.lang.String name)
                       throws java.lang.NullPointerException
findet eine Nummer zu einem Namen, sowohl für Gegenstände als auch für Personen. Erst wird nach einem Gegenstand gesucht, dann nach einer Person. Wird beides nicht gefunden, wirft die Methode eine NullPointerException

java.lang.NullPointerException

positionFinden

public int positionFinden(int nummer,
                          java.util.Vector objekte)
                   throws java.lang.ArrayIndexOutOfBoundsException
findet die passende Position im Vektor zu einer gegebenen Objektnummer oder wirft eine Exception

java.lang.ArrayIndexOutOfBoundsException

positionFinden

public int positionFinden(java.lang.String name,
                          java.util.Vector objekte)
                   throws java.lang.ArrayIndexOutOfBoundsException
findet die passende Position im Vektor zu einem gegebenen Objektnamen oder wirft eine Exception

java.lang.ArrayIndexOutOfBoundsException

objektVektorAendern

private void objektVektorAendern(java.util.Vector objekte,
                                 java.lang.String[] neueobjekte,
                                 java.lang.String[] entfernteobjekte,
                                 boolean ioderp)
Fügt neue Objekte in einen Vektor ein und löscht alte heraus, es werden der zu bearbeitende Vektor, je eine Liste mit neuen und alten Elementen und ein Parameter, der aussagt, ob Inventargegenstände oder Personen eingefügt werden sollen, übergeben.


gegenstandGeben

public Inventargegenstand gegenstandGeben(java.lang.String name)
                                   throws java.lang.NullPointerException
sucht nach einem Gegenstand, falls er mitgenommen werden kann, löscht die Methode ihn aus ihrem Inventar und gibt den Gegenstand zurück. Wird kein Gegenstand mit dem Namen gefunden, oder kann der Gegenstand nicht mitgenommen werden, wird eine Exception geworfen

java.lang.NullPointerException

gegenstandNehmen

public void gegenstandNehmen(Inventargegenstand ding)
fügt einen übergebenen Gegenstand ins Inventar ein


beschreibungAusgeben

public java.lang.String beschreibungAusgeben()
gibt die beschreibung des Raumes aus


objekteAusgeben

private java.lang.String[] objekteAusgeben(java.util.Vector objekte)
liefert ein Feld zurück, das alle Namen der vorhandenen Objekte im übergebenen Vektor (Inventar oder Personen) enthält


personenAusgeben

public java.lang.String[] personenAusgeben()
gibt die Namen aller im Raum vorhandenen Personen aus


inventarAusgeben

public java.lang.String[] inventarAusgeben()
gibt die Namen aller im Raum vorhanden Inventargegenstände aus


alleObjekteAusgeben

public java.lang.String[] alleObjekteAusgeben()
gibt die Namen aller im Raum vorhandenen Objekte, sowohl die von Gegenständen als auch die von Personen, aus


personenBeschreibungAusgeben

public java.lang.String personenBeschreibungAusgeben(java.lang.String name)
gibt die Beschreibung einer untersuchten Person aus. Anders als bei Gegenständen soll dadurch nicht das Inventar geändert werden, dazu soll man mit Personen reden müssen


inventarBeschreibungAusgeben

public java.lang.String inventarBeschreibungAusgeben(java.lang.String name)
wird beim Untersuchen eines Gegenstandes aufgerufen, überprüft, ob das Inventar des Raumes durch das Untersuchen geändert werden muß, und liefert dann die Beschreibung des Gegenstandes zurück.


reden

public java.lang.String reden(java.lang.String name)
sucht nach einer Standard-Antwort zu dem angegebenen Personen- namen und gibt diese aus, bei Bedarf wird die Personenliste hierbei geändert


reden

public java.lang.String reden(int antwortnummer,
                              java.lang.String name)
Über diese Methode kann man interaktiv mit Personen reden. Es werden der Name der Person und die Nummer der gestellten Frage übergeben, bei Bedarf wird das Inventar oder die Personenliste geändert.


objektBeschreibungAusgeben

public java.lang.String objektBeschreibungAusgeben(java.lang.String objektname)
liefert die Beschreibung eines Objektes zurück, falls ein Gegenstand mit dem entsprechenden Namen gefunden wird, wird dessen Beschreibung ausgegeben, wird keiner gefunden, sucht die Methode weiter bei den Personen. Wird auch hier keine Übereinstimmung gefunden, gibt die Methode eine Standard- Fehlermeldung zurück.


norden

public boolean norden()
gibt an, ob man von diesem Raum aus in die genannte Richtung weitergehen kann


sueden

public boolean sueden()
gibt an, ob man von diesem Raum aus in die genannte Richtung weitergehen kann


westen

public boolean westen()
gibt an, ob man von diesem Raum aus in die genannte Richtung weitergehen kann


osten

public boolean osten()
gibt an, ob man von diesem Raum aus in die genannte Richtung weitergehen kann


oben

public boolean oben()
gibt an, ob man von diesem Raum aus in die genannte Richtung weitergehen kann


unten

public boolean unten()
gibt an, ob man von diesem Raum aus in die genannte Richtung weitergehen kann


main

public static void main(java.lang.String[] args)