Generierte Dokumentation der praktischen Arbeit von Simon Tiffert


Hauptseite | Pakete | Klassenhierarchie | Alphabetische Liste | Auflistung der Klassen | Auflistung der Dateien | Klassen-Elemente

main.verarbeitung.Matrix Klassenreferenz

Zusammengehörigkeiten von main.verarbeitung.Matrix:

Collaboration graph
[Legende]
Aufstellung aller Elemente

Ausführliche Beschreibung

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
Autor:
Simon Tiffert

Definiert in Zeile 40 der Datei Matrix.java.

Öffentliche Methoden

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) throws WrongDimensionException
 Diese Funktion erstellt die Matrix mit den übergebenen Dimensionen.

void setSperrfeld (int y, int x) throws OutOfMatrixException, IsSperrfeldException, IsStartpunktException
 Diese Funktion setzt ein Sperrfeld in der Matrix.

void setStartpunkt (int y, int x) throws OutOfMatrixException, ReDefinedStartpunktException
 Diese Funktion speichert den Startpunkt für die Sprungfolge.


Geschützte Methoden

void setWegGefunden ()
 Funktion, die den Weg als gefunden markiert.

void setWert (int y, int x, int wert)
 Diese Funktion setzt den Wert der Matrix an einer Stelle.


Private Attribute

boolean isInitialisiert = false
 Variable die anzeigt, ob die Matrix initialisiert wurde.

int[][] matrix
 zweidimensionales Feld als zentrales Element

int sperrFeldAnzahl = 0
 Anzahl der Sprungfelder.

Punkt startpunkt = null
 Startpunkt der Sprungfolge.

boolean wegGefunden = false
 Weg gefunden?


Dokumentation der Elementfunktionen

int main.verarbeitung.Matrix.getFeldAnzahl  ) 
 

Diese Funktion gibt zurück, wieviele Felder besuchbar sind.

Dabei wird von der Anzahl der Felder die Anzahl der Sperrfelder abgezogen

Rückgabe:
Feldanzahl (ohne Sperrfelder)

Definiert in Zeile 65 der Datei Matrix.java.

Benutzt main.verarbeitung.Matrix.getXDimension(), main.verarbeitung.Matrix.getYDimension() und main.verarbeitung.Matrix.sperrFeldAnzahl.

Wird benutzt von main.verarbeitung.Verarbeitung.roesselSprung().

00066   {
00067     return getXDimension() * getYDimension() - sperrFeldAnzahl;
00068   }

Hier ist der Graph aller Aufrufe für diese Funktion:

Punkt main.verarbeitung.Matrix.getStartpunkt  ) 
 

Diese Funktion gibt den Startpunkt als Punkt zurück.

Rückgabe:
Startpunkt

Definiert in Zeile 75 der Datei Matrix.java.

Benutzt main.verarbeitung.Matrix.startpunkt.

Wird benutzt von main.verarbeitung.Verarbeitung.Verarbeitung().

00076   {
00077     return startpunkt;
00078   }

int main.verarbeitung.Matrix.getWert int  y,
int  x
 

Diese Funktion gibt einen Wert in der Matrix zurück.

Parameter:
y y-Koordinate des Punktes
x x-Koordinate des Punktes
Rückgabe:
den Wert der Matrix an der Stelle

Definiert in Zeile 87 der Datei Matrix.java.

Wird benutzt von main.verarbeitung.Verarbeitung.roesselSprung().

00088   {
00089     return matrix[y][x];
00090   }

int main.verarbeitung.Matrix.getXDimension  ) 
 

Diese Funktion gibt die X-Dimension der Matrix zurück.

Rückgabe:
X-Dimension der Matrix

Definiert in Zeile 97 der Datei Matrix.java.

Wird benutzt von main.verarbeitung.Matrix.getFeldAnzahl().

00098   {
00099     return matrix[0].length;
00100   }

int main.verarbeitung.Matrix.getYDimension  ) 
 

Diese Funktion gibt die Y-Dimension der Matrix zurück.

Rückgabe:
Y-Dimension der Matrix

Definiert in Zeile 107 der Datei Matrix.java.

Wird benutzt von main.verarbeitung.Matrix.getFeldAnzahl().

00108   {
00109     return matrix.length;
00110   }

boolean main.verarbeitung.Matrix.isInitialisiert  ) 
 

Funktion, die angibt, ob die Matrix schon initialisiert ist.

Rückgabe:
false: nicht initialisiert, true initialisiert

Definiert in Zeile 117 der Datei Matrix.java.

00118   {
00119     return isInitialisiert;
00120   }

boolean main.verarbeitung.Matrix.isInMatrix int  y,
int  x
 

Funktion, die überprüft, ob ein Wert innerhalb der Matrix liegt.

Dabei werden folgende Möglichkeiten überprüft:

  • y-Koordinate kleiner als 0
  • x-Koordinate kleiner als 0
  • y-Koordinate größer als y-Dimension der Matrix
  • x-Koordinate größer als x-Dimension der Matrix

Ist keiner dieser Fälle eingetreten, so befindet sich der Punkt in der Matrix

Parameter:
y y-Koordinate des Punktes
x x-Koordinate des Punktes
Rückgabe:
Ob der Punkt innerhalb der Matrix liegt

Definiert in Zeile 139 der Datei Matrix.java.

Wird benutzt von main.verarbeitung.Verarbeitung.roesselSprung().

00140   {
00141     // wenn die y-Koordinate kleiner als 0 ist
00142     if (y < 0)
00143     {
00144       return false;
00145     }
00146 
00147     // wenn die x-Koordinate kleiner als 0 ist
00148     if (x < 0)
00149     {
00150       return false;
00151     }
00152 
00153     // wenn die y-Koordinate größer als die Y-Dimension der Matrix ist
00154     if (y >= this.getYDimension())
00155     {
00156       return false;
00157     }
00158 
00159     // wenn die x-Koordinate größer als die X-Dimension der Matrix ist
00160     if (x >= this.getXDimension())
00161     {
00162       return false;
00163     }
00164 
00165     // Punkt ist in Matrix
00166     return true;
00167   }

boolean main.verarbeitung.Matrix.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.

Parameter:
y y-Koordinate des Punktes
x x-Koordinate des Punktes
Rückgabe:
Ob der Punkt schon ein Sperrfeld ist

Definiert in Zeile 178 der Datei Matrix.java.

00179   {
00180     // ist der Punkt ein Sperrfeld, gib falsch zurück
00181     if (this.getWert(y, x) < 0)
00182     {
00183       return true;
00184     }
00185 
00186     // Punkt ist kein Sperrfeld 
00187     return false;
00188   }

boolean main.verarbeitung.Matrix.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

Parameter:
y y-Koordinate des Punktes
x x-Koordinate des Punktes
Rückgabe:
Ob der Punkt der Startpunkt ist

Definiert in Zeile 199 der Datei Matrix.java.

00200   {
00201     // ist der Punkt der Startpunkt, gib wahr zurück
00202     if (y == this.startpunkt.getY() && x == this.startpunkt.getX())
00203     {
00204       return true;
00205     }
00206 
00207     // Punkt ist nicht der Startpunkt
00208     return false;
00209   }

boolean main.verarbeitung.Matrix.isWegGefunden  ) 
 

Funktion, die angibt, ob ein Weg gefunden wurde.

Rückgabe:
false: kein Weg, true: Weg gefunden

Definiert in Zeile 217 der Datei Matrix.java.

Benutzt main.verarbeitung.Matrix.wegGefunden.

00218   {
00219     return wegGefunden;
00220   }

void main.verarbeitung.Matrix.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:

  • angegebene Dimension kleiner als 0
  • angegebene Dimension größer als maximale Dimension

Liegen die angebenen Dimensionen innerhalb dieser Rahmen, so wird die Matrix mit den Dimensionsangaben angelegt.

Parameter:
m y-Dimension der Matrix
n x-Dimension der Matrix
Ausnahmebehandlung:
WrongDimensionException Falsche Dimensionsangabe

Definiert in Zeile 240 der Datei Matrix.java.

00241   {
00242     if (m <= 0
00243       || n <= 0
00244       || m > Main.maxDimension
00245       || n > Main.maxDimension)
00246     {
00247       throw new WrongDimensionException();
00248     }
00249 
00250     matrix = new int[m][n];
00251   }

void main.verarbeitung.Matrix.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:

  • ob das Sperrfeld überhaupt innerhalb der Matrix liegt
  • ob das Sperrfeld schon eingetragen wurde
  • ob das Sperrfeld auf dem Startpunkt liegt
Wenn diese Prüfungen erfüllt sind, so wird das Sperrfeld als negativer Punkt (-1) in der Matrix eingetragen.

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

Definiert in Zeile 271 der Datei Matrix.java.

Benutzt main.verarbeitung.Matrix.sperrFeldAnzahl.

00276   {
00277     // wenn das Sperrfeld nicht in der Matrix liegt
00278     if (!this.isInMatrix(y, x))
00279     {
00280       // werfe die Exception
00281       throw new OutOfMatrixException(
00282         "Sperrfeld X(" + (y + 1) + "," + (x + 1) + ")");
00283     }
00284 
00285     // wenn das Sperrfeld schon besetzt ist
00286     if (this.isSperrfeld(y, x))
00287     {
00288       // werfe die Exception
00289       throw new IsSperrfeldException(
00290         "(" + (y + 1) + "," + (x + 1) + ")");
00291     }
00292 
00293     // wenn das Sperrfeld der Startpunkt ist
00294     if (this.isStartpunkt(y, x))
00295     {
00296       // werfe die Exception
00297       throw new IsStartpunktException(
00298         "(" + (y + 1) + "," + (x + 1) + ")");
00299     }
00300   
00301     // erhöhe die Sperrfeldanzahl
00302     sperrFeldAnzahl++;
00303 
00304     // setze den Wert als negative Zahl (-1)
00305     this.setWert(y, x, -1);
00306   }

void main.verarbeitung.Matrix.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

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

Definiert in Zeile 318 der Datei Matrix.java.

Benutzt main.verarbeitung.Matrix.startpunkt.

00320   {
00321     // Wenn ein Startpunkt außerhalb der Matrix definiert wird
00322     if (!this.isInMatrix(y, x))
00323     {
00324       // werfe Exception
00325       throw new OutOfMatrixException(
00326         "Startpunkt S(" + (y + 1) + "," + (x + 1) + ")");
00327     }
00328 
00329     // Wenn ein Startpunkt nochmal definiert wird, was bei der
00330     // Verwendung als Unterprogramm passieren kann
00331     if (startpunkt != null)
00332     {
00333       // werde Exception
00334       throw new ReDefinedStartpunktException();
00335     }
00336     
00337     //  setze die Matrix auf den Zustand initialisiert
00338     isInitialisiert = true;
00339     
00340     // Der Startpunkt wird erstellt und gespeichert
00341     startpunkt = new Punkt(y, x);
00342   }

void main.verarbeitung.Matrix.setWegGefunden  )  [protected]
 

Funktion, die den Weg als gefunden markiert.

Definiert in Zeile 347 der Datei Matrix.java.

Benutzt main.verarbeitung.Matrix.wegGefunden.

Wird benutzt von main.verarbeitung.Verarbeitung.Verarbeitung().

00348   {
00349     wegGefunden = true;
00350   }

void main.verarbeitung.Matrix.setWert int  y,
int  x,
int  wert
[protected]
 

Diese Funktion setzt den Wert der Matrix an einer Stelle.

Parameter:
y y-Koordinate des Punktes
x x-Koordinate des Punktes
wert Wert auf den der Punkt gesetzt werden soll

Definiert in Zeile 359 der Datei Matrix.java.

Wird benutzt von main.verarbeitung.Verarbeitung.roesselSprung().

00360   {
00361     matrix[y][x] = wert;
00362   }


Dokumentation der Datenelemente

boolean main.verarbeitung.Matrix.isInitialisiert = false [private]
 

Variable die anzeigt, ob die Matrix initialisiert wurde.

Definiert in Zeile 44 der Datei Matrix.java.

Wird benutzt von main.verarbeitung.Verarbeitung.Verarbeitung().

int [][] main.verarbeitung.Matrix.matrix [private]
 

zweidimensionales Feld als zentrales Element

Definiert in Zeile 47 der Datei Matrix.java.

int main.verarbeitung.Matrix.sperrFeldAnzahl = 0 [private]
 

Anzahl der Sprungfelder.

Definiert in Zeile 50 der Datei Matrix.java.

Wird benutzt von main.verarbeitung.Matrix.getFeldAnzahl() und main.verarbeitung.Matrix.setSperrfeld().

Punkt main.verarbeitung.Matrix.startpunkt = null [private]
 

Startpunkt der Sprungfolge.

Definiert in Zeile 53 der Datei Matrix.java.

Wird benutzt von main.verarbeitung.Matrix.getStartpunkt() und main.verarbeitung.Matrix.setStartpunkt().

boolean main.verarbeitung.Matrix.wegGefunden = false [private]
 

Weg gefunden?

Definiert in Zeile 56 der Datei Matrix.java.

Wird benutzt von main.verarbeitung.Matrix.isWegGefunden() und main.verarbeitung.Matrix.setWegGefunden().


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Datei:



Documentation created with Doxygen 1.3.6 Fri May 14 11:15:53 2004