main.verarbeitung
Class Matrix

java.lang.Object
  |
  +--main.verarbeitung.Matrix

public class Matrix
extends java.lang.Object

Klasse, die die Verwaltung der Matrix übernimmt. Dabei befindet sich die Matrix selber als zentrales Element in dieser Klasse.
Alle Operationen, die die Matrix verändern, werden durch setter zur Verfügung gestellt, die direkt Konsistenzprüfungen durchführen.
Alle Operationen, die Daten aus der Matrix abfragen sind über getter definiert, die die Daten aufbereitet zur Verfügung stellen.
Zudem gibt es noch Prüfungen, die auch direkt in dieser Klasse definiert sind und boolesche Ergebnisse zurückliefern. Die Schnittstellen dieser Klasse sind möglichst vielfältig, um alle nötigen Eingaben zu ermöglichen. Um die Algorithmen klein zu halten, wurde hier ein Großteil der Funktionalität für die Matrix implementiert.

Version:
$Revision: 1.15 $
Author:
Simon Tiffert

Constructor Summary
Matrix()
           
 
Method Summary
 int getFeldAnzahl()
          Diese Funktion gibt zurück, wieviele Felder besuchbar sind.
 Punkt getStartpunkt()
          Diese Funktion gibt den Startpunkt als Punkt zurück
 int getWert(int y, int x)
          Diese Funktion gibt einen Wert in der Matrix zurück
 int getXDimension()
          Diese Funktion gibt die X-Dimension der Matrix zurück
 int getYDimension()
          Diese Funktion gibt die Y-Dimension der Matrix zurück
 boolean isInitialisiert()
          Funktion, die angibt, ob die Matrix schon initialisiert ist
 boolean isInMatrix(int y, int x)
          Funktion, die überprüft, ob ein Wert innerhalb der Matrix liegt.
 boolean isSperrfeld(int y, int x)
          Funktion, die überprüft, ob das übergebene Feld ein Sperrfeld ist.
 boolean isStartpunkt(int y, int x)
          Die Funktion überprüft, ob das übergebene Feld der Startpunkt ist.
 boolean isWegGefunden()
          Funktion, die angibt, ob ein Weg gefunden wurde.
 void setMatrix(int m, int n)
          Diese Funktion erstellt die Matrix mit den übergebenen Dimensionen.
 void setSperrfeld(int y, int x)
          Diese Funktion setzt ein Sperrfeld in der Matrix.
 void setStartpunkt(int y, int x)
          Diese Funktion speichert den Startpunkt für die Sprungfolge.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Matrix

public Matrix()
Method Detail

getFeldAnzahl

public int getFeldAnzahl()
Diese Funktion gibt zurück, wieviele Felder besuchbar sind. Dabei wird von der Anzahl der Felder die Anzahl der Sperrfelder abgezogen

Returns:
Feldanzahl (ohne Sperrfelder)

getStartpunkt

public Punkt getStartpunkt()
Diese Funktion gibt den Startpunkt als Punkt zurück

Returns:
Startpunkt

getWert

public int getWert(int y,
                   int x)
Diese Funktion gibt einen Wert in der Matrix zurück

Parameters:
y - y-Koordinate des Punktes
x - x-Koordinate des Punktes
Returns:
den Wert der Matrix an der Stelle

getXDimension

public int getXDimension()
Diese Funktion gibt die X-Dimension der Matrix zurück

Returns:
X-Dimension der Matrix

getYDimension

public int getYDimension()
Diese Funktion gibt die Y-Dimension der Matrix zurück

Returns:
Y-Dimension der Matrix

isInitialisiert

public boolean isInitialisiert()
Funktion, die angibt, ob die Matrix schon initialisiert ist

Returns:
false: nicht initialisiert, true initialisiert

isInMatrix

public boolean isInMatrix(int y,
                          int x)
Funktion, die überprüft, ob ein Wert innerhalb der Matrix liegt. Dabei werden folgende Möglichkeiten überprüft: Ist keiner dieser Fälle eingetreten, so befindet sich der Punkt in der Matrix

Parameters:
y - y-Koordinate des Punktes
x - x-Koordinate des Punktes
Returns:
Ob der Punkt innerhalb der Matrix liegt

isSperrfeld

public boolean isSperrfeld(int y,
                           int x)
Funktion, die überprüft, ob das übergebene Feld ein Sperrfeld ist. Dabei wird einfach überprüft, ob der Wert in der Matrix kleiner als 0 ist.

Parameters:
y - y-Koordinate des Punktes
x - x-Koordinate des Punktes
Returns:
Ob der Punkt schon ein Sperrfeld ist

isStartpunkt

public boolean isStartpunkt(int y,
                            int x)
Die Funktion überprüft, ob das übergebene Feld der Startpunkt ist. Geprüft wird, ob der übergebene Punkt mit dem gespeicherten Startpunkt übereinstimmt

Parameters:
y - y-Koordinate des Punktes
x - x-Koordinate des Punktes
Returns:
Ob der Punkt der Startpunkt ist

isWegGefunden

public boolean isWegGefunden()
Funktion, die angibt, ob ein Weg gefunden wurde.

Returns:
false: kein Weg, true: Weg gefunden

setMatrix

public void setMatrix(int m,
                      int n)
               throws WrongDimensionException
Diese Funktion erstellt die Matrix mit den übergebenen Dimensionen. Dabei wird direkt die Konsistenzprüfung durchgeführt, ob die angegebenen Dimensionen übereinstimmen. Prüfungen sind hier: Liegen die angebenen Dimensionen innerhalb dieser Rahmen, so wird die Matrix mit den Dimensionsangaben angelegt.

Parameters:
m - y-Dimension der Matrix
n - x-Dimension der Matrix
Throws:
WrongDimensionException - Falsche Dimensionsangabe

setSperrfeld

public void setSperrfeld(int y,
                         int x)
                  throws OutOfMatrixException,
                         IsSperrfeldException,
                         IsStartpunktException
Diese Funktion setzt ein Sperrfeld in der Matrix. Dabei werden auch die Konsistenzprüfungen durchgeführt. Geprüft wird: Wenn diese Prüfungen erfüllt sind, so wird das Sperrfeld als negativer Punkt (-1) in der Matrix eingetragen.

Parameters:
y - y-Koordinate des Sperrfeldes
x - x-Koordinate des Sperrfeldes
Throws:
OutOfMatrixException - Sperrfeld außerhalb der Matrix
IsSperrfeldException - Sperrfeld schon vorhanden
IsStartpunktException - Sperrfeld auf Startpunkt

setStartpunkt

public void setStartpunkt(int y,
                          int x)
                   throws OutOfMatrixException,
                          ReDefinedStartpunktException
Diese Funktion speichert den Startpunkt für die Sprungfolge. Dabei wird direkt überprüft, ob der Wert innerhalb der Matrix liegt. Ansonsten wird eine Exception geworfen

Parameters:
y - y-Koordinate des Startpunktes
x - x-Koordinate des Startpunktes
Throws:
OutOfMatrixException - Startpunkt außerhalb der Matrix
ReDefinedStartpunktException - Mehrfacher Startpunkt