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 java.awt.*;
import java.awt.event.*;
public class Banniere extends JPanel {
// Définition du constructeur
@ -8,7 +9,7 @@ public class Banniere extends JPanel {
// On défini un style à la bannière
this.setBackground( new Color(0, 236, 96));
// TODO : Bouton sauver et quitter
}
@ -17,6 +18,31 @@ public class Banniere extends JPanel {
this.removeAll();
this.add(new MineLeft(minesLeft,this.getSize()));
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(){
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

@ -2,7 +2,7 @@ import javax.swing.*;
import java.awt.*;
import java.util.Random;
public class Grille extends JPanel {
public class Grille extends JPanel{
private Banniere banniere;
private Dimension grilleSize=new Dimension(0,0);
private Case[] plateau;
@ -12,6 +12,9 @@ public class Grille extends JPanel {
private int minesLeft;
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
public Grille(int lignes, int colonnes, int mines){
@ -159,6 +162,7 @@ public class Grille extends JPanel {
this.plateau[i].setVisible();
}
System.out.println("Défaite !");
this.banniere.setDefaite();
}
// 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
if (taille-mines==casesVisibles){
System.out.println("Victoire !");
for (int i=0;i<taille;i++){
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){
int[] settings =this.menu.getSettings();
new FrameJeu(settings[0], settings[1], settings[2]);
this.menu.setVisible(false);
this.menu.dispose();
}
}