import java.io.DataInputStream; import java.io.FileInputStream; import java.io.IOException; public class Grid { private Cell[][] cell; public Grid() { cell = new Cell[9][9]; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { cell[i][j] = new Cell(); } } } public Grid(Grid grid) { cell = new Cell[9][9]; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { cell[i][j] = new Cell(grid.cell[i][j].getValue()); } } } public void loadGridFromFile(String fileName) { try (DataInputStream input = new DataInputStream(new FileInputStream(fileName))) { for (int ligne = 0; ligne < 9; ligne++) { String line = String.valueOf(input.readInt()); int length = line.length(); if (length < 9) { line = "000000000".substring(length) + line; // Ajoute les zéros au début si nécessaire } for (int column = 0; column < 9; column++) { char number = line.charAt(column); int value = Character.getNumericValue(number); cell[ligne][column].setValue(value); } } System.out.println("Success"); System.out.println(this); } catch (IOException e) { System.err.println("Error: " + e.getMessage()); } } public Cell getCell(int ligne, int col) { return cell[ligne][col]; } public void copyFrom(Grid second_grid) { for (int row = 0; row < 9; row++) { for (int col = 0; col < 9; col++) { this.cell[row][col].setValue(second_grid.cell[row][col].getValue()); } } } public void printGrid() { for (int row = 0; row < 9; row++) { for (int col = 0; col < 9; col++) { System.out.print(cell[row][col].getValue() + " "); } System.out.println(); } } }