Auto
This commit is contained in:
parent
3c29242a61
commit
1333177f88
BIN
Enter$1.class
BIN
Enter$1.class
Binary file not shown.
BIN
Enter.class
BIN
Enter.class
Binary file not shown.
82
Enter.java
82
Enter.java
@ -36,8 +36,12 @@ public class Enter extends JPanel {
|
|||||||
String valueStr = JOptionPane.showInputDialog(null, "Enter value for the selected cell:");
|
String valueStr = JOptionPane.showInputDialog(null, "Enter value for the selected cell:");
|
||||||
try {
|
try {
|
||||||
int value = Integer.parseInt(valueStr);
|
int value = Integer.parseInt(valueStr);
|
||||||
grid[selectedRow][selectedCol] = value;
|
if (isValidValue(value, selectedRow, selectedCol)) {
|
||||||
repaint();
|
grid[selectedRow][selectedCol] = value;
|
||||||
|
repaint();
|
||||||
|
} else {
|
||||||
|
JOptionPane.showMessageDialog(null, "Not possible.");
|
||||||
|
}
|
||||||
} catch (NumberFormatException ex) {
|
} catch (NumberFormatException ex) {
|
||||||
JOptionPane.showMessageDialog(null, "Invalid input. Please enter a number.");
|
JOptionPane.showMessageDialog(null, "Invalid input. Please enter a number.");
|
||||||
}
|
}
|
||||||
@ -50,41 +54,67 @@ public class Enter extends JPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int[][] getInitialGrid() {
|
public int[][] getInitialGrid() {
|
||||||
return initialGrid;
|
return initialGrid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isValidValue(int value, int row, int col) {
|
||||||
|
// Vérifier la ligne
|
||||||
|
for (int i = 0; i < grid[row].length; i++) {
|
||||||
|
if (grid[row][i] == value && i != col) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vérifier la colonne
|
||||||
|
for (int i = 0; i < grid.length; i++) {
|
||||||
|
if (grid[i][col] == value && i != row) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vérifier la région
|
||||||
|
int regionRow = row / REGION_SIZE * REGION_SIZE;
|
||||||
|
int regionCol = col / REGION_SIZE * REGION_SIZE;
|
||||||
|
for (int i = regionRow; i < regionRow + REGION_SIZE; i++) {
|
||||||
|
for (int j = regionCol; j < regionCol + REGION_SIZE; j++) {
|
||||||
|
if (grid[i][j] == value && (i != row || j != col)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void paintComponent(Graphics g) {
|
protected void paintComponent(Graphics g) {
|
||||||
super.paintComponent(g);
|
super.paintComponent(g);
|
||||||
|
|
||||||
// Dessiner les contours de la grille (en gras)
|
// Dessiner les contours de la grille (en gras)
|
||||||
Graphics2D g2d = (Graphics2D) g;
|
Graphics2D g2d = (Graphics2D) g;
|
||||||
Stroke oldStroke = g2d.getStroke(); // Sauvegarder le style de ligne précédent
|
Stroke oldStroke = g2d.getStroke(); // Sauvegarder le style de ligne précédent
|
||||||
g2d.setStroke(new BasicStroke(4)); // Épaisseur de ligne de 4 pixels
|
g2d.setStroke(new BasicStroke(4)); // Épaisseur de ligne de 4 pixels
|
||||||
|
|
||||||
for (int i = 0; i <= GRID_SIZE * REGION_SIZE; i++) {
|
for (int i = 0; i <= GRID_SIZE * REGION_SIZE; i++) {
|
||||||
if (i % REGION_SIZE == 0) {
|
if (i % REGION_SIZE == 0) {
|
||||||
g2d.drawLine(0, i * CELL_SIZE, GRID_SIZE * REGION_SIZE * CELL_SIZE, i * CELL_SIZE);
|
g2d.drawLine(0, i * CELL_SIZE, GRID_SIZE * REGION_SIZE * CELL_SIZE, i * CELL_SIZE);
|
||||||
g2d.drawLine(i * CELL_SIZE, 0, i * CELL_SIZE, GRID_SIZE * REGION_SIZE * CELL_SIZE);
|
g2d.drawLine(i * CELL_SIZE, 0, i * CELL_SIZE, GRID_SIZE * REGION_SIZE * CELL_SIZE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Rétablir le style de ligne précédent
|
// Rétablir le style de ligne précédent
|
||||||
g2d.setStroke(oldStroke);
|
g2d.setStroke(oldStroke);
|
||||||
|
|
||||||
// Dessiner les cases de la grille
|
// Dessiner les cases de la grille
|
||||||
for (int i = 0; i < GRID_SIZE * REGION_SIZE; i++) {
|
for (int i = 0; i < GRID_SIZE * REGION_SIZE; i++) {
|
||||||
for (int j = 0; j < GRID_SIZE * REGION_SIZE; j++) {
|
for (int j = 0; j < GRID_SIZE * REGION_SIZE; j++) {
|
||||||
g.setColor(Color.BLACK);
|
g.setColor(Color.BLACK);
|
||||||
g.drawRect(j * CELL_SIZE, i * CELL_SIZE, CELL_SIZE, CELL_SIZE);
|
g.drawRect(j * CELL_SIZE, i * CELL_SIZE, CELL_SIZE, CELL_SIZE);
|
||||||
int value = grid[i][j];
|
int value = grid[i][j];
|
||||||
if (value != 0) {
|
if (value != 0) {
|
||||||
g.drawString(String.valueOf(value), j * CELL_SIZE + CELL_SIZE / 2, i * CELL_SIZE + CELL_SIZE / 2);
|
g.drawString(String.valueOf(value), j * CELL_SIZE + CELL_SIZE / 2, i * CELL_SIZE + CELL_SIZE / 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
BIN
Main$1.class
BIN
Main$1.class
Binary file not shown.
BIN
Main.class
BIN
Main.class
Binary file not shown.
BIN
Reset.class
BIN
Reset.class
Binary file not shown.
BIN
Resolve.class
BIN
Resolve.class
Binary file not shown.
BIN
SudokuDraw.class
BIN
SudokuDraw.class
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user