| Generierte Dokumentation der praktischen Arbeit von Simon Tiffert |

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.
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? | |
|
|
Diese Funktion gibt zurück, wieviele Felder besuchbar sind. Dabei wird von der Anzahl der Felder die Anzahl der Sperrfelder abgezogen
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:

|
|
Diese Funktion gibt den Startpunkt als Punkt zurück.
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 }
|
|
||||||||||||
|
Diese Funktion gibt einen Wert in der Matrix zurück.
Definiert in Zeile 87 der Datei Matrix.java. Wird benutzt von main.verarbeitung.Verarbeitung.roesselSprung().
00088 {
00089 return matrix[y][x];
00090 }
|
|
|
Diese Funktion gibt die X-Dimension der Matrix zurück.
Definiert in Zeile 97 der Datei Matrix.java. Wird benutzt von main.verarbeitung.Matrix.getFeldAnzahl().
00098 {
00099 return matrix[0].length;
00100 }
|
|
|
Diese Funktion gibt die Y-Dimension der Matrix zurück.
Definiert in Zeile 107 der Datei Matrix.java. Wird benutzt von main.verarbeitung.Matrix.getFeldAnzahl().
00108 {
00109 return matrix.length;
00110 }
|
|
|
Funktion, die angibt, ob die Matrix schon initialisiert ist.
Definiert in Zeile 117 der Datei Matrix.java.
00118 {
00119 return isInitialisiert;
00120 }
|
|
||||||||||||
|
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
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 }
|
|
||||||||||||
|
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.
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 }
|
|
||||||||||||
|
Die Funktion überprüft, ob das übergebene Feld der Startpunkt ist. Geprüft wird, ob der übergebene Punkt mit dem gespeicherten Startpunkt übereinstimmt
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 }
|
|
|
Funktion, die angibt, ob ein Weg gefunden wurde.
Definiert in Zeile 217 der Datei Matrix.java. Benutzt main.verarbeitung.Matrix.wegGefunden.
00218 {
00219 return wegGefunden;
00220 }
|
|
||||||||||||
|
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.
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 }
|
|
||||||||||||
|
Diese Funktion setzt ein Sperrfeld in der Matrix. Dabei werden auch die Konsistenzprüfungen durchgeführt. Geprüft wird:
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 }
|
|
||||||||||||
|
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
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 }
|
|
|
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 }
|
|
||||||||||||||||
|
Diese Funktion setzt den Wert der Matrix an einer Stelle.
Definiert in Zeile 359 der Datei Matrix.java. Wird benutzt von main.verarbeitung.Verarbeitung.roesselSprung().
00360 {
00361 matrix[y][x] = wert;
00362 }
|
|
|
Variable die anzeigt, ob die Matrix initialisiert wurde.
Definiert in Zeile 44 der Datei Matrix.java. Wird benutzt von main.verarbeitung.Verarbeitung.Verarbeitung(). |
|
|
zweidimensionales Feld als zentrales Element
Definiert in Zeile 47 der Datei Matrix.java. |
|
|
Anzahl der Sprungfelder.
Definiert in Zeile 50 der Datei Matrix.java. Wird benutzt von main.verarbeitung.Matrix.getFeldAnzahl() und main.verarbeitung.Matrix.setSperrfeld(). |
|
|
Startpunkt der Sprungfolge.
Definiert in Zeile 53 der Datei Matrix.java. Wird benutzt von main.verarbeitung.Matrix.getStartpunkt() und main.verarbeitung.Matrix.setStartpunkt(). |
|
|
Weg gefunden?
Definiert in Zeile 56 der Datei Matrix.java. Wird benutzt von main.verarbeitung.Matrix.isWegGefunden() und main.verarbeitung.Matrix.setWegGefunden(). |
|
|
|
| Documentation created with Doxygen 1.3.6 | Fri May 14 11:15:53 2004 |