Der Compiler zeigt mir bei folgendem Code immer diese Meldung an:
Sudoku.java:127: error: cannot find symbol
this.grid = grid;
symbol: variable grid
Woran liegt das?
Sudoku.java:127: error: cannot find symbol
this.grid = grid;
symbol: variable grid
Java:
/**
* Sudoku.java
* Created: 14.01.2014, 13:17:06
*/
/**
*
*/
public class Sudoku {
/**
* Checks whether a two dimensional grid represents a valid solution for a 9x9
* Sudoku.
* @param grid the grid of numbers
* @return {@code true} if the solution is valid, {@code false} otherwise.
*/
public static boolean isValid(int[][] grid) {
if( grid == null ) {
return false;
}
if( grid.length != 9 ) {
return false;
}
for( int i = 0; i < grid.length; i++ ) {
if( grid[i].length != grid.length ) {
return false;
}
for( int j = 0; j < grid.length; j++ ) {
if (grid[i][j] < 1 || grid[i][j] > 9) {
return false;
}
}
}
// Check rows
for( int i = 0; i < grid.length; i++ ) {
boolean[] occurs = new boolean[grid.length + 1];
for( int j = 0; j < grid.length; j++ ) {
if (occurs[grid[i][j]]) {
return false;
} else {
occurs[grid[i][j]] = true;
}
}
}
// Check columns
for( int i = 0; i < grid.length; i++ ) {
boolean[] occurs = new boolean[grid.length + 1];
for( int j = 0; j < grid.length; j++ ) {
if( occurs[grid[j][i]] ) {
return false;
} else {
occurs[grid[j][i]] = true;
}
}
}
// Check squares
for( int i = 0; i < grid.length; i++ ) {
boolean[] occurs = new boolean[grid.length + 1];
for( int j = 0; j < grid.length; j++ ) {
if( occurs[grid[(i / 3) * 3 + j / 3][(i % 3) * 3 + j % 3]] ) {
return false;
} else {
occurs[grid[(i / 3) * 3 + j / 3][(i % 3) * 3 + j % 3]] = true;
}
}
}
return true;
}
public static boolean isGridValid(int[][] grid) {
if( grid == null ) {
return false;
}
if( grid.length != 9 ) {
return false;
}
for( int i = 0; i < grid.length; i++ ) {
if( grid[i].length != grid.length ) {
return false;
}
for( int j = 0; j < grid.length; j++ ) {
if (grid[i][j] < 0 || grid[i][j] > 9) {
return false;
}
}
}
// Check rows
for( int i = 0; i < grid.length; i++ ) {
boolean[] occurs = new boolean[grid.length + 1];
for( int j = 0; j < grid.length; j++ ) {
if (occurs[grid[i][j]]) {
return false;
} else {
occurs[grid[i][j]] = true;
}
}
}
// Check columns
for( int i = 0; i < grid.length; i++ ) {
boolean[] occurs = new boolean[grid.length + 1];
for( int j = 0; j < grid.length; j++ ) {
if( occurs[grid[j][i]] ) {
return false;
} else {
occurs[grid[j][i]] = true;
}
}
}
// Check squares
for( int i = 0; i < grid.length; i++ ) {
boolean[] occurs = new boolean[grid.length + 1];
for( int j = 0; j < grid.length; j++ ) {
if( occurs[grid[(i / 3) * 3 + j / 3][(i % 3) * 3 + j % 3]] ) {
return false;
} else {
occurs[grid[(i / 3) * 3 + j / 3][(i % 3) * 3 + j % 3]] = true;
}
}
}
return true;
}
public Sudoku(int[][] grid){
this.grid = grid;
}
public int getValue(int row, int colum){
return this.grid[row][colum];
}
}
Woran liegt das?