diff --git a/Case.java b/Case.java
index 48ba53c..bdc4994 100644
--- a/Case.java
+++ b/Case.java
@@ -1,15 +1,38 @@
import javax.swing.*;
import java.awt.*;
+/**
+* La classe Case
genère une case de jeu
+* @version 1.1
+* @author Kayyissa Haïssous
+*/
public class Case extends JPanel {
- // Definition d'attributs
+ /**
+ * grille sur laquelle est la cas
+ */
private Grille grille;
+ /**
+ * nombre de mines alentours
+ */
private int entourage;
+ /**
+ * statut si la case est visible ou non
+ */
private boolean visible;
+ /**
+ * si la case est minée ou non
+ */
private boolean minee;
+ /**
+ * si la case est marquée par l'utilisateur ou non
+ */
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) {
super();
// Initialisation des attributs
@@ -27,7 +50,9 @@ public class Case extends JPanel {
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(){
// On vérfie que la case n'est pas déjà 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(){
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(){
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(){
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){
this.entourage=entourage;
}
- // Renvoi l'entourage de la case
+ /**
+ *Renvoie l'entourage de la case
+ * @return this.entourage
+ */
public int getEntourage(){
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(){
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){
this.reperee=reperee;
if (marquage==1){
@@ -108,12 +154,17 @@ public class Case extends JPanel {
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(){
return this.reperee;
}
- // Methode pour montrer que la partie est gagnée
+ /**
+ * Methode pour montrer que la partie est gagnée
+ */
public void setVictoire(){
this.grille.setEnJeu(false);
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(){
return this.grille.getEnJeu();
}
+ /**
+ * redéfinition du toString pour sauvegarder les cases
+ */
@Override
public String toString(){
int value=0;
diff --git a/Doute.java b/Doute.java
index d090373..7ed1f97 100644
--- a/Doute.java
+++ b/Doute.java
@@ -1,12 +1,29 @@
import javax.swing.JComponent;
import java.awt.*;
-
+/**
+* La classe Doute
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 {
+ /**
+ * taille d'une case
+ */
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) {
super();
this.caseSize=caseSize;
}
+ /**
+ * Méthode de JComponent réécrite pour afficher une étoile
+ * @param pinceau pinceau pour dessiner le JComponent
+ */
@Override
protected void paintComponent(Graphics pinceau) {
Graphics chiffre = pinceau.create();
diff --git a/Entourage.java b/Entourage.java
index 3093710..882f455 100644
--- a/Entourage.java
+++ b/Entourage.java
@@ -1,14 +1,36 @@
import javax.swing.JComponent;
import java.awt.*;
-
+/**
+* La classe Entourage
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 {
+ /**
+ * nombre de mines autour de la case
+ */
private int entourage;
+ /**
+ * taille d'une case
+ */
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) {
super();
this.entourage = entourage;
this.caseSize=caseSize;
}
+ /**
+ * Méthode de JComponent réécrite pour afficher le nombre de mines
+ * @param pinceau pinceau pour dessiner le JComponent
+ */
@Override
protected void paintComponent(Graphics pinceau) {
Graphics chiffre = pinceau.create();
diff --git a/Etoile.java b/Etoile.java
index 19aae62..6ff3b74 100644
--- a/Etoile.java
+++ b/Etoile.java
@@ -1,16 +1,36 @@
import javax.swing.JComponent;
import java.awt.*;
-
-
-// Création d'un Jcomponent Etoile, qui sert pour le marquage des mines
+/**
+* La classe Etoile
hérite de JComponent
+* Création d'une Etoile, qui sert pour le marquage des cases
+*
+* @version 1.1
+* @author Kayyissa Haïssous
+*/
public class Etoile extends JComponent {
+ /**
+ *Image de l'étoile à dessiner
+ */
private Image etoileImage;
+ /**
+ * taille d'une case
+ */
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) {
super();
this.caseSize=caseSize;
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
protected void paintComponent(Graphics pinceau) {
Graphics etoile = pinceau.create();
diff --git a/Grille.java b/Grille.java
index 3c48e35..e5ae7e1 100644
--- a/Grille.java
+++ b/Grille.java
@@ -2,20 +2,62 @@ import javax.swing.*;
import java.awt.*;
import java.util.Random;
import java.util.Arrays;
-
+/**
+* La classe Grille
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{
+ /**
+ * Banniere
+ */
private Banniere banniere;
+ /**
+ * Dimension de la grille
+ */
private Dimension grilleSize=new Dimension(0,0);
+ /**
+ * tableau des cases de la partie
+ */
private Case[] plateau;
+ /**
+ * nombre de colonnes
+ */
private int colonnes;
+ /**
+ * nombre de lignes
+ */
private int lignes;
+ /**
+ * nombre de cases
+ */
private int taille;
+ /**
+ * nombre de mines
+ */
private int mines;
+ /**
+ * nombre de mines restantes à trouver
+ */
private int minesLeft;
+ /**
+ * statut si la partie est en cours ou non
+ */
private boolean enJeu;
+ /**
+ * fenetre de Jeu
+ */
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){
super();
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){
super();
this.colonnes=colonnes;
@@ -137,7 +188,10 @@ public class Grille extends JPanel{
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){
this.plateau= new Case[this.taille];
for (int i=0;iListenerCase 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 {
+ /**
+ * nombre représentant le marquage sur la case
+ */
private int marquage = 0;
@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) {
Case panel = (Case) evenement.getSource();
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) {
}
-
+ /**
+ * Méthode à écrire qui n'intervient pas
+ * @param evenement L'évenement de la souris
+ */
public void mouseExited(MouseEvent evenement) {
}
-
+ /**
+ * Méthode à écrire qui n'intervient pas
+ * @param evenement L'évenement de la souris
+ */
public void mousePressed(MouseEvent evenement) {
}
-
+ /**
+ * Méthode à écrire qui n'intervient pas
+ * @param evenement L'évenement de la souris
+ */
public void mouseReleased(MouseEvent evenement) {
}
diff --git a/Main.java b/Main.java
index 00c3c83..4bf409c 100644
--- a/Main.java
+++ b/Main.java
@@ -6,6 +6,7 @@
public class Main{
/**
* main ouvrant la fenêtre de menu
+ * @param args arguments au lancement du programme
*/
public static void main(String[] args) {
new FrameMenu();
diff --git a/Makefile b/Makefile
index 29ab214..572e9ff 100644
--- a/Makefile
+++ b/Makefile
@@ -20,15 +20,18 @@ SettingsListener.class : SettingsListener.java
NewGameListener.class : NewGameListener.java FrameJeu.class
${JC} ${JCFLAGS} NewGameListener.java
-Chargement.class : Chargement.java FrameJeu.class
+Chargement.class : Chargement.java FrameJeu.class SaveManager.class
${JC} ${JCFLAGS} Chargement.java
-FrameJeu.class : FrameJeu.java Grille.class
+FrameJeu.class : FrameJeu.java Grille.class SaveAndCloseListener.class
${JC} ${JCFLAGS} FrameJeu.java
Grille.class : Grille.java Banniere.class Case.class
${JC} ${JCFLAGS} Grille.java
+SaveAndCloseListener.class : SaveAndCloseListener.java SaveManager.class
+ ${JC} ${JCFLAGS} SaveAndCloseListener.java
+
Banniere.class : Banniere.java MenuListener.class SaveListener.class
${JC} ${JCFLAGS} Banniere.java
diff --git a/Save.txt b/Save.txt
index 36fd77b..8b7aaa3 100644
--- a/Save.txt
+++ b/Save.txt
@@ -1,2 +1,2 @@
25x20x50
-44244410444434444444444444414444144444444444444444441444424444444334444114444444443444444444444400444444444444444444444441010444444444444444444410000044444444444444444100001004444444410104100101001010444444440044444444444000044444444004444444444400004444444101444444444441000014444444444414444444000000444444444440444444401001044444444444044444100000000144444441000144401000000000144410000100010000000000004440100000100100000100001001000000000000000000000001000000000000000010000100000000100100000010
\ No newline at end of file
+00000000000000000100103440000000000000011444434444000000000010004444444444400100000010001444444444440000000000104444444444444000000100001444444444444401100000000144443344444444441001000001444444444444344440444100144444430011044444344444444444444100014444444444444444444440000444444444444444444444000044444444444444444434011004444444444444444444010100444443444444444443000001044444444444444300000000004444444444444300000000000444443444444410010000000043444444444441000000000004434444444301000100100000
\ No newline at end of file
diff --git a/SaveAndCloseListener.java b/SaveAndCloseListener.java
index a8dfeaf..ac28258 100644
--- a/SaveAndCloseListener.java
+++ b/SaveAndCloseListener.java
@@ -1,14 +1,36 @@
import java.awt.event.*;
-public class SaveAndCloseListener implements WindowListener{
+/**
+* La classe SaveAndCloseListener
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;
- 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;
}
+ /**
+ * Méthode à écrire qui n'intervient pas
+ * @param e L'évenement sur la fenêtre
+ */
@Override
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
public void windowClosing(WindowEvent e) {
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
public void windowClosed(WindowEvent e) {
}
+ /**
+ * Méthode à écrire qui n'intervient pas
+ * @param e L'évenement sur la fenêtre
+ */
@Override
public void windowIconified(WindowEvent e) {
}
+ /**
+ * Méthode à écrire qui n'intervient pas
+ * @param e L'évenement sur la fenêtre
+ */
@Override
public void windowDeiconified(WindowEvent e) {
}
+ /**
+ * Méthode à écrire qui n'intervient pas
+ * @param e L'évenement sur la fenêtre
+ */
@Override
public void windowActivated(WindowEvent e) {
}
+ /**
+ * Méthode à écrire qui n'intervient pas
+ * @param e L'évenement sur la fenêtre
+ */
@Override
public void windowDeactivated(WindowEvent e) {
}
diff --git a/SaveManager.java b/SaveManager.java
index f66beb9..a98c38e 100644
--- a/SaveManager.java
+++ b/SaveManager.java
@@ -36,7 +36,8 @@ public class SaveManager {
/**
* 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) {
String toReturn="";
diff --git a/package-list b/package-list
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/package-list
@@ -0,0 +1 @@
+