début save

This commit is contained in:
Haïssous Kayyissa 2022-05-21 18:41:24 +02:00
parent c86f3dadfb
commit 8fb102a5fd
5 changed files with 60 additions and 5 deletions

View File

@ -1,5 +1,6 @@
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.event.*;
public class Banniere extends JPanel { public class Banniere extends JPanel {
// Définition du constructeur // Définition du constructeur
@ -17,6 +18,31 @@ public class Banniere extends JPanel {
this.removeAll(); this.removeAll();
this.add(new MineLeft(minesLeft,this.getSize())); this.add(new MineLeft(minesLeft,this.getSize()));
this.repaint(); this.repaint();
this.updateUI(); }
// Méthode pour indiquer au joueur sa Victoire
public void setVictoire(){
this.add(new Fin("Victoire !",this.getSize()));
this.repaint();
JButton menu = new JButton("Revenir au menu");
menu.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
new FrameMenu();
}
});
this.add(menu);
}
// Méthode pour indiquer au joueur sa Défaite
public void setDefaite(){
this.add(new Fin("Défaite !",this.getSize()));
this.repaint();
JButton menu = new JButton("Revenir au menu");
menu.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
new FrameMenu();
}
});
this.add(menu);
} }
} }

View File

@ -125,4 +125,7 @@ public class Case extends JPanel {
public boolean getEnJeu(){ public boolean getEnJeu(){
return this.grille.getEnJeu(); return this.grille.getEnJeu();
} }
// TODO : Override toString() pour avoir 3 bits désignants l'état de la case
//
} }

21
Fin.java Normal file
View File

@ -0,0 +1,21 @@
import javax.swing.JComponent;
import java.awt.*;
public class Fin extends JComponent {
private String message;
private Dimension banniereSize;
public Fin(String message, Dimension banniereSize) {
super();
this.message = message;
this.banniereSize=banniereSize;
}
@Override
protected void paintComponent(Graphics pinceau) {
this.setSize(banniereSize);
Graphics chiffre = pinceau.create();
Font font = new Font("Arial", Font.BOLD, banniereSize.width/50);
chiffre.setFont(font);
chiffre.setColor(new Color(0, 22, 236));
chiffre.drawString(message,banniereSize.width/100,banniereSize.height*2/3);
}
}

View File

@ -12,6 +12,9 @@ public class Grille extends JPanel {
private int minesLeft; private int minesLeft;
private boolean enJeu; private boolean enJeu;
// 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 // Définition du constructeur qui correspond à une grille de jeu
public Grille(int lignes, int colonnes, int mines){ public Grille(int lignes, int colonnes, int mines){
@ -159,6 +162,7 @@ public class Grille extends JPanel {
this.plateau[i].setVisible(); this.plateau[i].setVisible();
} }
System.out.println("Défaite !"); System.out.println("Défaite !");
this.banniere.setDefaite();
} }
// Méthode pour obtenir la taille de la grille de jeu // Méthode pour obtenir la taille de la grille de jeu
@ -188,10 +192,11 @@ public class Grille extends JPanel {
} }
// Lance la victoire si toutes les cases non minées sont révélées // Lance la victoire si toutes les cases non minées sont révélées
if (taille-mines==casesVisibles){ if (taille-mines==casesVisibles){
System.out.println("Victoire !");
for (int i=0;i<taille;i++){ for (int i=0;i<taille;i++){
this.plateau[i].setVictoire(); this.plateau[i].setVictoire();
} }
System.out.println("Victoire !");
this.banniere.setVictoire();
} }
} }

View File

@ -7,6 +7,6 @@ public class NewGameListener implements ActionListener{
public void actionPerformed(ActionEvent event){ public void actionPerformed(ActionEvent event){
int[] settings =this.menu.getSettings(); int[] settings =this.menu.getSettings();
new FrameJeu(settings[0], settings[1], settings[2]); new FrameJeu(settings[0], settings[1], settings[2]);
this.menu.setVisible(false); this.menu.dispose();
} }
} }