Hallo,
ganz einfach:
Ich habe eine 2dim int Matrix, bei der alle Felder erstmal 0 sind. Ziel ist es von einem Punkt A zu einem Punkt B zugelangen. Ein gültiger Schritt in einem Weg wird durch den Wert 1 innerhalb eines Indexes repräsentiert, also z.B. auf (6,6) = 1.
Bestimmte Felder werden mit -1 belegt, -1 bedeutet hier darf kein Schritt vollführt werden, d.h. also hier kann keine 1 gesetzt werden.
Ein Feld der Matrix hat im idealen Fall 9 Nachbarfelder und diese dürfen als nächster Schritt erhalten.
*EDIT*
Nur 4 Nachbarn, digonal ist uninteressant!
Also wenn ich von (0,0) starte setz ich 1 in (0,0) und dann z.B. 1 in (0,1) danach 1 in (0,2) und wenn bei (0,3) das Ziel ist wäre ich da und ein Weg wäre gefunden.
Ich möchte nun von einem Punkt (5,5) zu (56,87) kommen. Wie implementiert man sowas?
Ich hoffe hier versteht was ich möchte, ich habe noch nichts implementiert...
ganz einfach:
Ich habe eine 2dim int Matrix, bei der alle Felder erstmal 0 sind. Ziel ist es von einem Punkt A zu einem Punkt B zugelangen. Ein gültiger Schritt in einem Weg wird durch den Wert 1 innerhalb eines Indexes repräsentiert, also z.B. auf (6,6) = 1.
Bestimmte Felder werden mit -1 belegt, -1 bedeutet hier darf kein Schritt vollführt werden, d.h. also hier kann keine 1 gesetzt werden.
Ein Feld der Matrix hat im idealen Fall 9 Nachbarfelder und diese dürfen als nächster Schritt erhalten.
*EDIT*
Nur 4 Nachbarn, digonal ist uninteressant!
Also wenn ich von (0,0) starte setz ich 1 in (0,0) und dann z.B. 1 in (0,1) danach 1 in (0,2) und wenn bei (0,3) das Ziel ist wäre ich da und ein Weg wäre gefunden.
Ich möchte nun von einem Punkt (5,5) zu (56,87) kommen. Wie implementiert man sowas?
Ich hoffe hier versteht was ich möchte, ich habe noch nichts implementiert...
Code:
package matrix;
public class Matrix {
/** 4 rows and 7 columns **/
private int [][] matrix = {
{0,0,0,0,-1,0,0},
{0,-1,0,0,0,0,0},
{0,-1,0,0,0,-1,0},
{0,0,-1,0,0,0,0},
};
private int startRow;
private int startColumn;
private int targetRow;
private int targetColumn;
public Matrix() {
startRow = 0;
startColumn = 0;
targetRow = 3;
targetColumn = 6;
}
public static void main(String[] args) {
}
}
Zuletzt bearbeitet: