1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public final class Fenetre extends JFrame {
static int[][] ResolutionTableau = new int[9][9];
public static void main(String[] args) {
int[][] tab={{1,2,3,4,5,6,7,8,9},{4,5,6,7,8,9,1,2,3},{7,8,9,1,2,3,4,5,6},{2,3,4,5,6,7,8,9,1},{5,6,7,8,9,1,2,3,4},{8,9,1,2,3,4,5,6,7},{3,4,5,6,7,8,9,1,2},{6,7,8,9,1,2,3,4,5},{9,1,2,3,4,5,6,7,8}};
verifyIfNumberAlreadyExist(1, 1, tab, 3);
//initGame();
Fenetre fen = new Fenetre();
}
private JPanel pan = new JPanel();
private JButton bouton = new JButton();
public Fenetre() {
this.setTitle("Sudoku 1.0");
this.setSize(500, 500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setContentPane(pan);
initGraphics();
this.setVisible(true);
}
public void initGraphics() {
int[][] tab={{1,2,3,4,5,6,7,8,9},{4,5,6,7,8,9,1,2,3},{7,8,9,1,2,3,4,5,6},{2,3,4,5,6,7,8,9,1},{5,6,7,8,9,1,2,3,4},{8,9,1,2,3,4,5,6,7},{3,4,5,6,7,8,9,1,2},{6,7,8,9,1,2,3,4,5},{9,1,2,3,4,5,6,7,8}};
JButton[][] tabJButton = new JButton[9][9];
JPanel jpanel = new JPanel();
//Variable qui détermine le nombres de chiffres-solutions à afficher depuis le départ
int numchiffresolution = 27;
int x = 300;
int y = 300;
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
tabJButton[i][j] = new JButton();
tabJButton[i][j].setSize(20, 30);
pan.add(tabJButton[i][j]);
tabJButton[i][j].setVisible(true);
tabJButton[i][j].setLocation(x, y);
//if ((int) (Math.random() * 3) == 2 && numchiffresolution > 0) {
tabJButton[i][j].setText(String.valueOf(tab[i][j]));
//numchiffresolution--;
//}
this.getContentPane().add(tabJButton[i][j]);
x += 30;
}
y = y + 20;
}
}
public static void initGame() {
ResolutionTableau[0][0] = (int) (Math.random() * 9 + 1);
int coin = ResolutionTableau[0][0];
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9;) {
if (i != 0 || j != 0) {
while (verifyIfNumberAlreadyExist(i, j, ResolutionTableau, coin)) {
coin = (int) (Math.random() * 9 + 1);
System.out.println("coin " + coin);
coin = (coin + 1) % 10;
}
ResolutionTableau[i][j] = coin;
}j++;
}i++;
}
}
public static boolean verifyIfNumberAlreadyExist(int i, int j, int[][] tableau, int numeroaverifier) {
boolean result = false;
//On vérifie sur cette boucle si le chiffre existe déjà sur la même ligne
if (j > 0) {
for (int l = 0; l <9; l++) {
if(l>=j){break;}
if (numeroaverifier == tableau[i][l]) {
result = true;
// System.out.println(+numeroaverifier);
System.out.println("ligne avec i=" +i +" et j=" +j +" et l="+l);
return result;
}
}
}
if (i > 0) {
for (int k = 0; k < 9; k++) {
if(k>=i){break;}
if (numeroaverifier == tableau[k][j]) {
result = true;
System.out.println("colonne avec i=" +i +" et j=" +j +" et k="+k);
return result;
}
}
} if (i % 3 != 0 || j % 3 != 0) {
for (int l = i - i % 3; l < i -i%3+3; l++) {
for (int k = j - j % 3; k < j -j%3+3; k++) {
if (i != l || j != k) {
if (numeroaverifier == tableau[l][k] && tableau[l][k] != 0) {
result = true;
System.out.println("carre avec i=" +i +" et j=" +j +" et l="+l +" et k=" +k);
return result;
}
}
}
}
}
return result;
}
} |
Partager