Guten Tag liebe Leute,
Ich schreibe gerade an einem Programm das Sudokus generieren soll. Jedoch habe ich bei dem generieren des Feldes einige Schwierigkeiten.
Das Ordnen der Zahlen in der Vertikalen und Horizontalen ist noch nicht implementiert.
Die Klasse Generator tut momentan folgendes(es funktionert noch nicht einwandfrei):
Sie füllt ein Board(übliches 9x9 Sudokufeld) mit zufälligen zahlen. Danach wird in for-Schleifen abgefragt, in welche der 9 3x3 Kästchen sich ein Feld befindet, da es sich selber ausschließt habe ich eine Array mit der Größe 8 erstellt. Jedoch beim achten und letzten durchlauf der Array bekomme ich eine NullPointerException.
Hier wird die Array erstellt:
Hier wird sie gefüllt:
Und hier bekomme ich dann die NullPointer:
Schon mal danke das ihr das gelesen habt
,
SirAntonius
Ich schreibe gerade an einem Programm das Sudokus generieren soll. Jedoch habe ich bei dem generieren des Feldes einige Schwierigkeiten.
Das Ordnen der Zahlen in der Vertikalen und Horizontalen ist noch nicht implementiert.
Die Klasse Generator tut momentan folgendes(es funktionert noch nicht einwandfrei):
Sie füllt ein Board(übliches 9x9 Sudokufeld) mit zufälligen zahlen. Danach wird in for-Schleifen abgefragt, in welche der 9 3x3 Kästchen sich ein Feld befindet, da es sich selber ausschließt habe ich eine Array mit der Größe 8 erstellt. Jedoch beim achten und letzten durchlauf der Array bekomme ich eine NullPointerException.
Hier wird die Array erstellt:
Java:
Figure[] field = new Figure[8];
Hier wird sie gefüllt:
Java:
for(int i = 0; i < 8; i++){
for(int i1 = 0; i1 < 8; i1++){
if(board.fields[i][i1].getFieldId() == fieldId && board.fields[i][i1] != board.fields[x][y]){
field[fieldCount] = board.fields[i][i1];
fieldCount ++;
}
}
}
Und hier bekomme ich dann die NullPointer:
Java:
private boolean checkField(int count, Figure[] field){
for(int i = 0; i < 8; i++){
if(field[i].getCount() == count){
//System.out.println("durchlauf" + String.valueOf(i +1));
//System.out.println(String.valueOf(count) + " in field(" +String.valueOf(field[i].getxPos()) + "," + String.valueOf(field[i].getyPos()) + ")");
return true;
}
}
return false;
}
Schon mal danke das ihr das gelesen habt
SirAntonius