javadoc ok

This commit is contained in:
Haïssous Kayyissa 2022-05-25 15:36:29 +02:00
parent f7a76e9bc4
commit c1c703ba3a
12 changed files with 326 additions and 46 deletions

View File

@ -1,15 +1,38 @@
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
/**
* La classe <code>Case</code> genère une case de jeu
* @version 1.1
* @author Kayyissa Haïssous
*/
public class Case extends JPanel { public class Case extends JPanel {
// Definition d'attributs /**
* grille sur laquelle est la cas
*/
private Grille grille; private Grille grille;
/**
* nombre de mines alentours
*/
private int entourage; private int entourage;
/**
* statut si la case est visible ou non
*/
private boolean visible; private boolean visible;
/**
* si la case est minée ou non
*/
private boolean minee; private boolean minee;
/**
* si la case est marquée par l'utilisateur ou non
*/
private boolean reperee; private boolean reperee;
// Définition du constructeur /**
* Définition du constructeur qui genère une case
* @param grille grille de jeu
* @param caseSize taille d'une case
*/
public Case(Grille grille, Dimension caseSize) { public Case(Grille grille, Dimension caseSize) {
super(); super();
// Initialisation des attributs // Initialisation des attributs
@ -27,7 +50,9 @@ public class Case extends JPanel {
this.setBackground(new Color(70, 70, 70)); this.setBackground(new Color(70, 70, 70));
} }
// Méthode qui permet de montrer la case, et fait perdre si elle est minée /**
* Méthode qui permet de montrer la case, et fait perdre si elle est minée
*/
public void setVisible(){ public void setVisible(){
// On vérfie que la case n'est pas déjà visible // On vérfie que la case n'est pas déjà visible
if (!this.visible){ if (!this.visible){
@ -66,37 +91,58 @@ public class Case extends JPanel {
} }
} }
// Méthode permettant de dire si la case est cachée ou visible /**
* Méthode permettant de dire si la case est cachée ou visible
* @return this.visible
*/
public boolean getVisible(){ public boolean getVisible(){
return this.visible; return this.visible;
} }
// Méthode pour déclarer la présence d'une mine sur une case /**
* Méthode pour déclarer la présence d'une mine sur une case
*/
public void setMine(){ public void setMine(){
this.minee=true; this.minee=true;
} }
// Permet de dire si une case est minée /**
* Permet de dire si une case est minée
* @return this.minee
*/
public boolean getMine(){ public boolean getMine(){
return this.minee; return this.minee;
} }
// Défini combien de mines entourent la case /**
*Défini combien de mines entourent la case
* @param entourage mines autour de la case
*/
public void setEntourage(int entourage){ public void setEntourage(int entourage){
this.entourage=entourage; this.entourage=entourage;
} }
// Renvoi l'entourage de la case /**
*Renvoie l'entourage de la case
* @return this.entourage
*/
public int getEntourage(){ public int getEntourage(){
return this.entourage; return this.entourage;
} }
// Permet d'acceder à la grille sur laquelle est la case /**
* Permet d'acceder à la grille sur laquelle est la case
* @return this.grille
*/
public Grille getGrille(){ public Grille getGrille(){
return this.grille; return this.grille;
} }
// Méthode pour savoir si le joueur pense que la case est minée /**
* Méthode pour savoir si le joueur pense que la case est minée
* @param reperee si la case est marquée ou non
* @param marquage quel est le marquage sur la case (0 si aucun)
*/
public void setReperee(boolean reperee, int marquage){ public void setReperee(boolean reperee, int marquage){
this.reperee=reperee; this.reperee=reperee;
if (marquage==1){ if (marquage==1){
@ -108,12 +154,17 @@ public class Case extends JPanel {
this.grille.MinesLeft(); this.grille.MinesLeft();
} }
// Methode pour dire si la case est marquée ou non /**
* Methode pour dire si la case est marquée ou non
* @return this.reperee
*/
public boolean getReperee(){ public boolean getReperee(){
return this.reperee; return this.reperee;
} }
// Methode pour montrer que la partie est gagnée /**
* Methode pour montrer que la partie est gagnée
*/
public void setVictoire(){ public void setVictoire(){
this.grille.setEnJeu(false); this.grille.setEnJeu(false);
if (this.minee==true){ if (this.minee==true){
@ -123,11 +174,17 @@ public class Case extends JPanel {
} }
} }
// Methode pour savoir dans le Listener si la partie est finie ou non /**
* Methode pour savoir si la partie est finie ou non
* @return this.grille.getEnJeu()
*/
public boolean getEnJeu(){ public boolean getEnJeu(){
return this.grille.getEnJeu(); return this.grille.getEnJeu();
} }
/**
* redéfinition du toString pour sauvegarder les cases
*/
@Override @Override
public String toString(){ public String toString(){
int value=0; int value=0;

View File

@ -1,12 +1,29 @@
import javax.swing.JComponent; import javax.swing.JComponent;
import java.awt.*; import java.awt.*;
/**
* La classe <code>Doute</code> hérite de JComponent
* Création d'un point d'interrogation, qui sert pour le marquage des cases
*
* @version 1.1
* @author Kayyissa Haïssous
*/
public class Doute extends JComponent { public class Doute extends JComponent {
/**
* taille d'une case
*/
private Dimension caseSize; private Dimension caseSize;
/**
* Constructeur qui ne sert qu'à la création de la constante caseSize
* @param caseSize la taille d'une case
*/
public Doute(Dimension caseSize) { public Doute(Dimension caseSize) {
super(); super();
this.caseSize=caseSize; this.caseSize=caseSize;
} }
/**
* Méthode de JComponent réécrite pour afficher une étoile
* @param pinceau pinceau pour dessiner le JComponent
*/
@Override @Override
protected void paintComponent(Graphics pinceau) { protected void paintComponent(Graphics pinceau) {
Graphics chiffre = pinceau.create(); Graphics chiffre = pinceau.create();

View File

@ -1,14 +1,36 @@
import javax.swing.JComponent; import javax.swing.JComponent;
import java.awt.*; import java.awt.*;
/**
* La classe <code>Entourage</code> hérite de JComponent
* Elle permet de recharger la case cliquée avec les modifications apportées par l'utilisateur
*
* @version 1.1
* @author Kayyissa Haïssous
*/
public class Entourage extends JComponent { public class Entourage extends JComponent {
/**
* nombre de mines autour de la case
*/
private int entourage; private int entourage;
/**
* taille d'une case
*/
private Dimension caseSize; private Dimension caseSize;
/**
* Constructeur qui ne sert qu'à la création des constantes
* @param entourage le nombre de mines à afficher
* @param caseSize la taille d'une case
*/
public Entourage(int entourage, Dimension caseSize) { public Entourage(int entourage, Dimension caseSize) {
super(); super();
this.entourage = entourage; this.entourage = entourage;
this.caseSize=caseSize; this.caseSize=caseSize;
} }
/**
* Méthode de JComponent réécrite pour afficher le nombre de mines
* @param pinceau pinceau pour dessiner le JComponent
*/
@Override @Override
protected void paintComponent(Graphics pinceau) { protected void paintComponent(Graphics pinceau) {
Graphics chiffre = pinceau.create(); Graphics chiffre = pinceau.create();

View File

@ -1,16 +1,36 @@
import javax.swing.JComponent; import javax.swing.JComponent;
import java.awt.*; import java.awt.*;
/**
* La classe <code>Etoile</code> hérite de JComponent
// Création d'un Jcomponent Etoile, qui sert pour le marquage des mines * Création d'une Etoile, qui sert pour le marquage des cases
*
* @version 1.1
* @author Kayyissa Haïssous
*/
public class Etoile extends JComponent { public class Etoile extends JComponent {
/**
*Image de l'étoile à dessiner
*/
private Image etoileImage; private Image etoileImage;
/**
* taille d'une case
*/
private Dimension caseSize; private Dimension caseSize;
/**
* Constructeur qui sert à la création de la constante caseSize et récupère l'image
* @param caseSize la taille d'une case
*/
public Etoile(Dimension caseSize) { public Etoile(Dimension caseSize) {
super(); super();
this.caseSize=caseSize; this.caseSize=caseSize;
this.etoileImage = Toolkit.getDefaultToolkit().getImage("etoile.png"); this.etoileImage = Toolkit.getDefaultToolkit().getImage("etoile.png");
} }
/**
* Méthode de JComponent réécrite pour afficher une étoile
* @param pinceau pinceau pour dessiner le JComponent
*/
@Override @Override
protected void paintComponent(Graphics pinceau) { protected void paintComponent(Graphics pinceau) {
Graphics etoile = pinceau.create(); Graphics etoile = pinceau.create();

View File

@ -2,20 +2,62 @@ import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.util.Random; import java.util.Random;
import java.util.Arrays; import java.util.Arrays;
/**
* La classe <code>Grille</code> correspond à une grille de jeu
* elle genère un tableau de case et une Bannière
* @version 1.1
* @author Kayyissa Haïssous
*/
public class Grille extends JPanel{ public class Grille extends JPanel{
/**
* Banniere
*/
private Banniere banniere; private Banniere banniere;
/**
* Dimension de la grille
*/
private Dimension grilleSize=new Dimension(0,0); private Dimension grilleSize=new Dimension(0,0);
/**
* tableau des cases de la partie
*/
private Case[] plateau; private Case[] plateau;
/**
* nombre de colonnes
*/
private int colonnes; private int colonnes;
/**
* nombre de lignes
*/
private int lignes; private int lignes;
/**
* nombre de cases
*/
private int taille; private int taille;
/**
* nombre de mines
*/
private int mines; private int mines;
/**
* nombre de mines restantes à trouver
*/
private int minesLeft; private int minesLeft;
/**
* statut si la partie est en cours ou non
*/
private boolean enJeu; private boolean enJeu;
/**
* fenetre de Jeu
*/
private FrameJeu fenetre; private FrameJeu fenetre;
// Définition du constructeur qui correspond à une nouvelle grille de jeu /**
* Définition du constructeur qui correspond à une nouvelle grille de jeu
* @param lignes nombre de lignes
* @param colonnes nombre de colonnes
* @param mines nombre de mines
* @param fenetre fenetre de Jeu
* @param menu fenetre du menu rattaché
*/
public Grille(int lignes, int colonnes, int mines, FrameJeu fenetre, FrameMenu menu){ public Grille(int lignes, int colonnes, int mines, FrameJeu fenetre, FrameMenu menu){
super(); super();
this.colonnes=colonnes; this.colonnes=colonnes;
@ -77,6 +119,15 @@ public class Grille extends JPanel{
} }
/**
* Définition du constructeur qui correspond au chargement d'une grille sauvegardé
* @param lignes nombre de lignes
* @param colonnes nombre de colonnes
* @param donnees sauvegarde
* @param mines nombre de mines
* @param fenetre fenetre de Jeu
* @param menu fenetre du menu rattaché
*/
public Grille (int lignes,int colonnes,SaveManager.SaveData donnees,int mines,FrameJeu fenetre, FrameMenu menu){ public Grille (int lignes,int colonnes,SaveManager.SaveData donnees,int mines,FrameJeu fenetre, FrameMenu menu){
super(); super();
this.colonnes=colonnes; this.colonnes=colonnes;
@ -137,7 +188,10 @@ public class Grille extends JPanel{
this.banniere.setMinesLeft(this.minesLeft); this.banniere.setMinesLeft(this.minesLeft);
} }
// Méthode pour Génerer le plateau /**
*Méthode pour Génerer le plateau
* @param caseSize taille d'une case
*/
protected void GenererPlateau(Dimension caseSize){ protected void GenererPlateau(Dimension caseSize){
this.plateau= new Case[this.taille]; this.plateau= new Case[this.taille];
for (int i=0;i<this.taille;i++){ for (int i=0;i<this.taille;i++){
@ -145,14 +199,19 @@ public class Grille extends JPanel{
} }
} }
// Méthode pour Afficher le plateau /**
*Méthode pour Afficher le plateau
*/
protected void AfficherPlateau(){ protected void AfficherPlateau(){
for (int i=0;i<this.taille;i++){ for (int i=0;i<this.taille;i++){
this.add(this.plateau[i]); this.add(this.plateau[i]);
} }
} }
// Méthode pour établir le nombre de mines autour de chaque case /**
*Méthode pour établir le nombre de mines autour de chaque case
* @param caseMine tableau des cases minées
*/
protected void SetEntourage(int[] caseMine){ protected void SetEntourage(int[] caseMine){
// On cherche à connaître le nombre de mines autour de chaque case // On cherche à connaître le nombre de mines autour de chaque case
for (int i=0;i<taille;i++){ for (int i=0;i<taille;i++){
@ -226,12 +285,18 @@ public class Grille extends JPanel{
} }
} }
// Méthode pour obtenir la taille de la grille de jeu /**
* Méthode pour obtenir la taille de la grille de jeu
* @return grilleSize
*/
public Dimension getGrilleSize(){ public Dimension getGrilleSize(){
return grilleSize; return grilleSize;
} }
// Méthode pour déterminer le nombre de mines restantes
/**
*Méthode déterminant le nombre de mines restantes
*/
public void MinesLeft(){ public void MinesLeft(){
this.minesLeft=this.mines; this.minesLeft=this.mines;
for (int i=0;i<this.taille;i++){ for (int i=0;i<this.taille;i++){
@ -242,7 +307,9 @@ public class Grille extends JPanel{
this.banniere.setMinesLeft(this.minesLeft); this.banniere.setMinesLeft(this.minesLeft);
} }
// Méthode déterminant les conditions de victoire /**
*Méthode déterminant les conditions de victoire
*/
public void verifVictoire(){ public void verifVictoire(){
// Compte le nombre de cases visibles // Compte le nombre de cases visibles
int casesVisibles=0; int casesVisibles=0;
@ -260,7 +327,9 @@ public class Grille extends JPanel{
} }
} }
// Méthode montrer la défaite /**
*Méthode pour montrer la défaite
*/
public void Defaite(){ public void Defaite(){
// Montre toutes les cases du plateau // Montre toutes les cases du plateau
for (int i=0;i<this.taille;i++){ for (int i=0;i<this.taille;i++){
@ -269,23 +338,35 @@ public class Grille extends JPanel{
this.banniere.setDefaite(); this.banniere.setDefaite();
} }
// Methode pour récupérer le plateau de jeu /**
* Methode pour récupérer le plateau de jeu
* @return copie du tableau de cases
*/
public Case[] getPlateau(){ public Case[] getPlateau(){
return Arrays.copyOf(this.plateau,this.taille); return Arrays.copyOf(this.plateau,this.taille);
} }
// Méthode pour récupérer la taille de la grille /**
*Méthode pour récupérer la taille de la grille
* @return la taille de la grille
*/
public Dimension getDimensionGrille(){ public Dimension getDimensionGrille(){
Dimension grilleSize= new Dimension(this.colonnes, this.lignes); Dimension grilleSize= new Dimension(this.colonnes, this.lignes);
return grilleSize; return grilleSize;
} }
// Méthode pour savoir combien de mines sont dans la grille /**
*Méthode pour savoir combien de mines sont dans la grille
* @return this.mines le nombre de mines
*/
public int getMines(){ public int getMines(){
return this.mines; return this.mines;
} }
// Méthode pour rendre visibles les cases autour d'un 0 /**
*Méthode pour rendre visibles les cases autour d'un 0
* @param panel case autour de laquelle il faut révéler les cases
*/
public void setEntourageVisible(Case panel){ public void setEntourageVisible(Case panel){
for(int i=0; i<this.taille;i++){ for(int i=0; i<this.taille;i++){
if (plateau[i]==panel){ if (plateau[i]==panel){
@ -341,15 +422,26 @@ public class Grille extends JPanel{
} }
} }
// Méthode qui renvoie la banniere d'état de la partie /**
*Méthode qui renvoie la banniere d'état de la partie
* @return this.banniere
*/
public Banniere getBanniere(){ public Banniere getBanniere(){
return this.banniere; return this.banniere;
} }
// Méthode qui défini si la partie est en cours ou non
/**
*Méthode qui défini si la partie est en cours ou non
* @param enJeu statut de la partie
*/
public void setEnJeu(boolean enJeu){ public void setEnJeu(boolean enJeu){
this.enJeu=enJeu; this.enJeu=enJeu;
} }
// Méthode qui renvoie si la partie est en cours ou non
/**
*Méthode qui renvoie si la partie est en cours ou non
* @return statut enjeu
*/
public boolean getEnJeu(){ public boolean getEnJeu(){
return this.enJeu; return this.enJeu;
} }

View File

@ -1,10 +1,22 @@
import java.awt.event.*; import java.awt.event.*;
/**
* La classe <code>ListenerCase</code> implémente l'interface MouseListener
* Elle permet de recharger la case cliquée avec les modifications apportées par l'utilisateur
*
* @version 1.1
* @author Kayyissa Haïssous
*/
public class ListenerCase implements MouseListener { public class ListenerCase implements MouseListener {
/**
* nombre représentant le marquage sur la case
*/
private int marquage = 0; private int marquage = 0;
@Override @Override
// Méthode qui va servir à détecter le click de la souris /**
* Méthode à écrire qui réagit au click de la souris
* @param evenement L'évenement de la souris
*/
public void mouseClicked(MouseEvent evenement) { public void mouseClicked(MouseEvent evenement) {
Case panel = (Case) evenement.getSource(); Case panel = (Case) evenement.getSource();
if (panel.getEnJeu()) { if (panel.getEnJeu()) {
@ -38,16 +50,28 @@ public class ListenerCase implements MouseListener {
} }
} }
// Les autres méthodes de l'interface n'interviennent pas /**
* Méthode à écrire qui n'intervient pas
* @param evenement L'évenement de la souris
*/
public void mouseEntered(MouseEvent evenement) { public void mouseEntered(MouseEvent evenement) {
} }
/**
* Méthode à écrire qui n'intervient pas
* @param evenement L'évenement de la souris
*/
public void mouseExited(MouseEvent evenement) { public void mouseExited(MouseEvent evenement) {
} }
/**
* Méthode à écrire qui n'intervient pas
* @param evenement L'évenement de la souris
*/
public void mousePressed(MouseEvent evenement) { public void mousePressed(MouseEvent evenement) {
} }
/**
* Méthode à écrire qui n'intervient pas
* @param evenement L'évenement de la souris
*/
public void mouseReleased(MouseEvent evenement) { public void mouseReleased(MouseEvent evenement) {
} }

View File

@ -6,6 +6,7 @@
public class Main{ public class Main{
/** /**
* main ouvrant la fenêtre de menu * main ouvrant la fenêtre de menu
* @param args arguments au lancement du programme
*/ */
public static void main(String[] args) { public static void main(String[] args) {
new FrameMenu(); new FrameMenu();

View File

@ -20,15 +20,18 @@ SettingsListener.class : SettingsListener.java
NewGameListener.class : NewGameListener.java FrameJeu.class NewGameListener.class : NewGameListener.java FrameJeu.class
${JC} ${JCFLAGS} NewGameListener.java ${JC} ${JCFLAGS} NewGameListener.java
Chargement.class : Chargement.java FrameJeu.class Chargement.class : Chargement.java FrameJeu.class SaveManager.class
${JC} ${JCFLAGS} Chargement.java ${JC} ${JCFLAGS} Chargement.java
FrameJeu.class : FrameJeu.java Grille.class FrameJeu.class : FrameJeu.java Grille.class SaveAndCloseListener.class
${JC} ${JCFLAGS} FrameJeu.java ${JC} ${JCFLAGS} FrameJeu.java
Grille.class : Grille.java Banniere.class Case.class Grille.class : Grille.java Banniere.class Case.class
${JC} ${JCFLAGS} Grille.java ${JC} ${JCFLAGS} Grille.java
SaveAndCloseListener.class : SaveAndCloseListener.java SaveManager.class
${JC} ${JCFLAGS} SaveAndCloseListener.java
Banniere.class : Banniere.java MenuListener.class SaveListener.class Banniere.class : Banniere.java MenuListener.class SaveListener.class
${JC} ${JCFLAGS} Banniere.java ${JC} ${JCFLAGS} Banniere.java

View File

@ -1,2 +1,2 @@
25x20x50 25x20x50
44244410444434444444444444414444144444444444444444441444424444444334444114444444443444444444444400444444444444444444444441010444444444444444444410000044444444444444444100001004444444410104100101001010444444440044444444444000044444444004444444444400004444444101444444444441000014444444444414444444000000444444444440444444401001044444444444044444100000000144444441000144401000000000144410000100010000000000004440100000100100000100001001000000000000000000000001000000000000000010000100000000100100000010 00000000000000000100103440000000000000011444434444000000000010004444444444400100000010001444444444440000000000104444444444444000000100001444444444444401100000000144443344444444441001000001444444444444344440444100144444430011044444344444444444444100014444444444444444444440000444444444444444444444000044444444444444444434011004444444444444444444010100444443444444444443000001044444444444444300000000004444444444444300000000000444443444444410010000000043444444444441000000000004434444444301000100100000

View File

@ -1,14 +1,36 @@
import java.awt.event.*; import java.awt.event.*;
public class SaveAndCloseListener implements WindowListener{ /**
* La classe <code>SaveAndCloseListener</code> implémente WindowListener
* elle genère un tableau de case et une Bannière
* @version 1.1
* @author Kayyissa Haïssous
*/
public class SaveAndCloseListener implements WindowListener {
/**
*grille de jeu
*/
private Grille grille; private Grille grille;
public SaveAndCloseListener(Grille grille){
/**
* Constructeur qui ne sert qu'à la création de la constante grille
* @param grille la grille de Jeu
*/
public SaveAndCloseListener(Grille grille) {
this.grille=grille; this.grille=grille;
} }
/**
* Méthode à écrire qui n'intervient pas
* @param e L'évenement sur la fenêtre
*/
@Override @Override
public void windowOpened(WindowEvent e) { public void windowOpened(WindowEvent e) {
} }
/**
* Méthode à écrire qui sert à sauvegarder la partie à la fermeture de la fenêtre
* @param e L'évenement sur la fenêtre
*/
@Override @Override
public void windowClosing(WindowEvent e) { public void windowClosing(WindowEvent e) {
SaveManager saveManager = new SaveManager(); SaveManager saveManager = new SaveManager();
@ -16,22 +38,42 @@ public class SaveAndCloseListener implements WindowListener{
} }
/**
* Méthode à écrire qui n'intervient pas
* @param e L'évenement sur la fenêtre
*/
@Override @Override
public void windowClosed(WindowEvent e) { public void windowClosed(WindowEvent e) {
} }
/**
* Méthode à écrire qui n'intervient pas
* @param e L'évenement sur la fenêtre
*/
@Override @Override
public void windowIconified(WindowEvent e) { public void windowIconified(WindowEvent e) {
} }
/**
* Méthode à écrire qui n'intervient pas
* @param e L'évenement sur la fenêtre
*/
@Override @Override
public void windowDeiconified(WindowEvent e) { public void windowDeiconified(WindowEvent e) {
} }
/**
* Méthode à écrire qui n'intervient pas
* @param e L'évenement sur la fenêtre
*/
@Override @Override
public void windowActivated(WindowEvent e) { public void windowActivated(WindowEvent e) {
} }
/**
* Méthode à écrire qui n'intervient pas
* @param e L'évenement sur la fenêtre
*/
@Override @Override
public void windowDeactivated(WindowEvent e) { public void windowDeactivated(WindowEvent e) {
} }

View File

@ -36,7 +36,8 @@ public class SaveManager {
/** /**
* Méthode qui charge les infos de sauvegarde * Méthode qui charge les infos de sauvegarde
* @param nomFicher le nom du fichier de save * @param nomFichier le nom du fichier de save
* @return sauvegarde
*/ */
public SaveData load(String nomFichier) { public SaveData load(String nomFichier) {
String toReturn=""; String toReturn="";

1
package-list Normal file
View File

@ -0,0 +1 @@