Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
public class Block {
private Field[][] block;
public Block() {
this.block = new Field[3][3];
}
}
und eine Klasse Field:
Java:
public class Field extends Observable {
private int value = 0;
private Set<Integer> potVal;
//........
Es werden zuerst die Fields angelegt und darin Werte gespeichert.
Dann sollen den Blocks verschiedene Fields zugewiesen werden.
Das hatte ich mir so gedacht:
Java:
public class Sudoku {
private Field[][] fields = new Field[9][9];
private Block[][] blocks = new Block[3][3];
public void fieldsInBlocks() {
for(int fieldrow = 0; fieldrow < fields.length; fieldrow++) {
for(int fieldcolumn = 0; fieldcolumn < fields[fieldrow].length; fieldcolumn++) {
blocks[0][0] = fields[fieldrow][fieldcolumn];
}
}
}
//......
Der Compiler sagt mir aber, dass der Datentyp Block erwartet, aber der Datentyp Field übergeben wird (in Zeile 10).
Aber der Datentyp Blocks besteht doch aus einem Field-Array.
blocks[0][0] ist eben ein Block`s Objekt, du musst aber auf das Field[][] block innerhalb diesen Objektes zugreifen.
(praktisch blocks[0][0].block[0][0] , was allerdings schlecht wäre und bei dir auch nicht geht da es private ist -> gut so)
Schreibe dir ein getter und/oder setter.
public class Block {
private Field[][] block;
public Block() {
this.block = new Field[3][3];
}
public void setBlock(int i, int j, Field field) {
this.block[i][j] = field;
}
}
Java:
public class Sudoku {
private Field[][] fields = new Field[9][9];
private Block[][] blocks = new Block[3][3];
public void fieldsInBlocks() {
for(int fieldrow = 0; fieldrow < fields.length; fieldrow++) {
for(int fieldcolumn = 0; fieldcolumn < fields[fieldrow].length; fieldcolumn++) {
blocks[0][0].setBlock(0, 0, fields[0][0]);
}
}
}
private Field[][] fields = new Field[9][9];
private Block[][] blocks = new Block[3][3];
Dieser teil erstellt 2 2Dimensionale Arrays. Jedes Element wird zu beginn null enthalten. Du kommst also nicht drum rum, zuerst mit 2 verschachtelten schleifen alle Elemente zu Initialisieren.