import javax.swing.*; import java.awt.*; import java.util.Random; import java.util.Arrays; public class Grille extends JPanel{ private Banniere banniere; private Dimension grilleSize=new Dimension(0,0); private Case[] plateau; private int colonnes; private int lignes; private int taille; private int mines; private int minesLeft; private boolean enJeu; private FrameJeu fenetre; // TODO : entourage dans une méthode // TODO : Recréer un tableau avec les cases minees // Définition du constructeur qui correspond à une grille de jeu public Grille(int lignes, int colonnes, int mines, FrameJeu fenetre, FrameMenu menu){ super(); this.colonnes=colonnes; this.lignes=lignes; this.taille=lignes*colonnes; this.mines=mines; this.minesLeft=mines; this.enJeu=true; this.fenetre=fenetre; // Découpage de l'espace en fonction des paramètres pour la mise en place de la grille Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); this.grilleSize = new Dimension(((screenSize.height*3/4)/lignes)*colonnes, screenSize.height*3/4 ); Dimension caseSize = new Dimension(this.grilleSize.height/lignes,this.grilleSize.height/lignes); GridLayout damier = new GridLayout(lignes,colonnes); Banniere banniere = new Banniere(mines,this.fenetre, menu, grilleSize); this.banniere=banniere; this.setLayout(damier); this.setSize(grilleSize); // On génère le plateau contenant les cases GenererPlateau(caseSize); // Instalation des mines // Création d'un tableau de nombres aléatoires pour savoir où les placer int[] caseMine = new int[mines]; Random rand = new Random(); // On initialise les emplacements des mines caseMine[0] = rand.nextInt(taille); for (int i=1;i=colonnes)&&(i%colonnes!=colonnes-1)){ for (int j=0;j=colonnes)&&(i%colonnes!=0)){ for (int j=0;j=colonnes){ for (int j=0;j=colonnes)&&(i%colonnes!=colonnes-1)){ for (int j=0;j=colonnes)&&(i%colonnes!=0)){ for (int j=0;j=colonnes){ for (int j=0;j