diff --git a/README.md b/README.md index 3969d82ee1b6465b7868e5f8acf1436681914021..9d9c55333cbfdad090840af98fe35713c294530f 100644 --- a/README.md +++ b/README.md @@ -22,4 +22,6 @@ Le pattern Observer nous a permis de modifier le score du joueur en temps réel Nettoyer le répertoire de travail target : __mvn clean__ -Compiler les sources : __mvn compile__ \ No newline at end of file +Compiler les sources : __mvn compile__ + +Vérifier la qualité du code : __mvn checkstyle:checkstyle__ \ No newline at end of file diff --git a/src/main/java/Etat.java b/src/main/java/Etat.java index 1f2594f9a2f28ea3d06708ac3b95d88cff60b1c7..f5fb85991c47f886aaccc64d62884f6ed31b7b3c 100644 --- a/src/main/java/Etat.java +++ b/src/main/java/Etat.java @@ -1,3 +1,11 @@ +/** + * Interface Etat. + */ public interface Etat { + /** + * Etat de la partie. + * + * @param justePrix + */ void partie(JustePrix justePrix); } diff --git a/src/main/java/EtatArret.java b/src/main/java/EtatArret.java index d170e18e9f8233916e13495201963c009b7738eb..fa607838c7d370e2f71eaaa97c9d86d7fb15596b 100644 --- a/src/main/java/EtatArret.java +++ b/src/main/java/EtatArret.java @@ -1,5 +1,7 @@ +/** + * Classe EtatArret. + */ public class EtatArret implements Etat { - @Override public void partie(JustePrix justePrix) { System.out.println("Le jeu est à l'arrêt"); diff --git a/src/main/java/EtatGagne.java b/src/main/java/EtatGagne.java index 5771846f556a239f0aca463bdb21315d3fdd7407..3b63625e6ead0f38f58e0e8af3b973b97a8ea1df 100644 --- a/src/main/java/EtatGagne.java +++ b/src/main/java/EtatGagne.java @@ -1,3 +1,6 @@ +/** + * Classe EtatGagne. + */ public class EtatGagne implements Etat{ @Override public void partie(JustePrix justePrix) { diff --git a/src/main/java/EtatJouer.java b/src/main/java/EtatJouer.java index 82043cb7bd3c8cb77c2c35555a60dce105029aa0..056e6b15938fae264b2112ecb7fb9f173bf68227 100644 --- a/src/main/java/EtatJouer.java +++ b/src/main/java/EtatJouer.java @@ -1,3 +1,6 @@ +/** + * Classe EtatJouer. + */ public class EtatJouer implements Etat{ @Override public void partie(JustePrix justePrix) { diff --git a/src/main/java/EtatPerdu.java b/src/main/java/EtatPerdu.java index 14a81423c04da15edcabd4592b5334497386e3dc..5179aec9204d66bdcf020a54779b235ecba524a7 100644 --- a/src/main/java/EtatPerdu.java +++ b/src/main/java/EtatPerdu.java @@ -1,3 +1,6 @@ +/** + * Classe EtatPerdu. + */ public class EtatPerdu implements Etat{ @Override public void partie(JustePrix justePrix) { diff --git a/src/main/java/Game.java b/src/main/java/Game.java index 8e0f51890df6e5b9f7632fffce54f9f387983ae6..8fafb2648bc116f1992ba5c8ae9774f6a10e36ff 100644 --- a/src/main/java/Game.java +++ b/src/main/java/Game.java @@ -2,14 +2,37 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; +/** + * Classe, Game, exécutive du jeu. + */ public class Game{ + /** + * Couleur de base (blanc). + */ public static final String ANSI_RESET = "\u001B[0m"; + /** + * Couleur jaune utilisée pour informer que le jeu est à l'arrêt. + */ public static final String ANSI_YELLOW = "\u001B[33m"; + /** + * Couleur bleue utilisée pour donner des indications vis à vis du jeu. + */ public static final String ANSI_BLUE = "\u001B[34m"; + /** + * Prix minimum pour un produit. + */ public static final int prixMin = 500; + /** + * Prix maximum pour un produit. + */ public static final int prixMax = 1500; + /** + * Méthode main. + * + * @param args + */ public static void main(String[] args) { JustePrix justePrixPartie = new JustePrix(); diff --git a/src/main/java/IProduitBuilder.java b/src/main/java/IProduitBuilder.java index 05f8c69fee4ad300f093dde9aa0e7a26d47a01c7..6e32a627e464a5176d099c8122ea601518f934ac 100644 --- a/src/main/java/IProduitBuilder.java +++ b/src/main/java/IProduitBuilder.java @@ -1,13 +1,44 @@ /** - * Builder produit + * Interface du Builder produit. */ public interface IProduitBuilder { + /** + * @param nom + */ IProduitBuilder setNom(String nom); + + /** + * @param os + */ IProduitBuilder setOs(String os); + + /** + * @param processeur + */ IProduitBuilder setProcesseur(String processeur); + + /** + * @param batterie + */ IProduitBuilder setBatterie(int batterie); + + /** + * @param ecran + */ IProduitBuilder setEcran(double ecran); + + /** + * @param marque + */ IProduitBuilder setMarque(String marque); + + /** + * @param prix + */ IProduitBuilder setPrix(int prix); + + /** + * @return un produit. + */ Produit getProduit(); } diff --git a/src/main/java/JustePrix.java b/src/main/java/JustePrix.java index 97b0dcf0103b6c13b5ff7b6745ef6eae2bfc121f..72138daf43e32befa70f7439e40cfa0353c41a91 100644 --- a/src/main/java/JustePrix.java +++ b/src/main/java/JustePrix.java @@ -1,24 +1,57 @@ import java.util.ArrayList; import java.util.Scanner; +/** + * Classe JustePrix. + */ public class JustePrix implements Sujet{ + /** + * Liste des observers. + */ private ArrayList<Observer> observers; + /** + * Score. + */ private int score; + /** + * Etat. + */ private Etat etat; + /** + * Couleur de base (blanc). + */ public static final String ANSI_RESET = "\u001B[0m"; + /** + * Couleur rouge utilisée si la manche est perdue. + */ public static final String ANSI_RED = "\u001B[31m"; + /** + * Couleur verte utilisée si la manche est gagnée. + */ public static final String ANSI_GREEN = "\u001B[32m"; + /** + * Couleur jaune utilisée pour informer que le jeu est en cours. + */ public static final String ANSI_YELLOW = "\u001B[33m"; + /** + * Nombre d'essais par manche. + */ public static final int nbEssais = 15; + /** + * Constructeur de la classe JustePrix. + */ public JustePrix() { etat = null; score = 0; observers = new ArrayList<>(); } + /** + * @param etat + */ public void setEtat(Etat etat) { this.etat = etat; } @@ -40,11 +73,22 @@ public class JustePrix implements Sujet{ } } + /** + * Mise à jour du score. + * @param score + */ public void updateScore(int score) { this.score = this.score + score; notifierObs(); } + /** + * Méthode en charge du déroulé du jeu (plus ou moins ou valeur non valable) et de l'arrêt de la manche si: + * - Le nombre d'essais est dépassé. + * - Le juste prix est trouvé. + * @param justeprix + * @param justePrixPartie + */ public void jouerPartie(int justeprix, JustePrix justePrixPartie) { EtatJouer etatJouer = new EtatJouer(); diff --git a/src/main/java/Observer.java b/src/main/java/Observer.java index def7e7a359eee52b48bf07543047df9bc4e7fd06..da7b34aadcaa567d56bcf5b0e594ff86a2fa4150 100644 --- a/src/main/java/Observer.java +++ b/src/main/java/Observer.java @@ -1,3 +1,10 @@ +/** + * Interface Observer. + */ public interface Observer { + /** + * Permet de notifier. + * @param score + */ void notifier(int score); } \ No newline at end of file diff --git a/src/main/java/Produit.java b/src/main/java/Produit.java index ee9e486328630dc83dfb79305e5360bd41d3e0be..255e31b25dfffeddcd941aebdc723485a6618a5f 100644 --- a/src/main/java/Produit.java +++ b/src/main/java/Produit.java @@ -4,39 +4,41 @@ public class Produit { /** - * nom du produit. + * Nom du produit. */ private String nom; /** - * os du produit. + * Os du produit. */ private String os; /** - * processeur du produit. + * Processeur du produit. */ private String processeur; /** - * batterie du produit. + * Batterie du produit. */ private int batterie; /** - * taille de l'écran du produit. + * Taille de l'écran du produit. */ private double ecran; /** - * marque du produit. + * Marque du produit. */ private String marque; /** - * prix du produit. + * Prix du produit. */ private int prix; /** - * type de produit. + * Type de produit. */ private String typeProduit; /** + * Constructeur de la classe Produit. + * * @param nom * @param os * @param processeur diff --git a/src/main/java/Score.java b/src/main/java/Score.java index d3eba43247bea57e3a3c421bd7c36f7332174ec5..26642c03878a96dc615384a62bf982963513a541 100644 --- a/src/main/java/Score.java +++ b/src/main/java/Score.java @@ -1,29 +1,59 @@ +/** + * Classe Score. + */ public class Score implements Observer{ + /** + * Couleur jaune utilisée pour l'affichage du score. + */ public final String ANSI_YELLOW = "\u001B[33m"; + /** + * Sujet. + */ private Sujet sujet; + /** + * Score. + */ private int score; + /** + * Constructeur de la classe Score. + * + * @param s + */ public Score(Sujet s) { s.enregistrerObs(this); this.sujet = s; } + /** + * Notifie un changement du score. + * @param score + */ @Override public void notifier(int score) { this.score = score; afficher(); } + /** + * Affiche le score. + */ public void afficher() { System.out.print(ANSI_YELLOW); System.out.println("Votre score est passé à "+this.score+"/4"); } + /** + * @return score. + */ public int getScore() { return score; } + /** + * @param score + */ public void setScore(int score) { this.score = score; } diff --git a/src/main/java/Sujet.java b/src/main/java/Sujet.java index ea820b8c184ce52d41925c2a00d7ab1201fdbc21..70b54ec2d54442dd92cbe6a3ea04ef4c4e269766 100644 --- a/src/main/java/Sujet.java +++ b/src/main/java/Sujet.java @@ -1,5 +1,21 @@ +/** + * Interface Sujet + */ public interface Sujet { + /** + * Permet d'engistrer un observer + * @param observer + */ void enregistrerObs(Observer observer); + + /** + * Permet de supprimer un observer + * @param observer + */ void supprimerObs(Observer observer); + + /** + * Permet de notifier les observers + */ void notifierObs(); } \ No newline at end of file diff --git a/src/main/java/TabletteBuilder.java b/src/main/java/TabletteBuilder.java index 36c364a466433de83176fe19bcee74ba4880762f..15a33f042c0937af0138ce28782ec2261128bfd0 100644 --- a/src/main/java/TabletteBuilder.java +++ b/src/main/java/TabletteBuilder.java @@ -1,11 +1,38 @@ +/** + * Classe du Builder tablette. + */ public class TabletteBuilder implements IProduitBuilder{ + /** + * Nom de la tablette. + */ String nom = ""; + /** + * Os de la tablette. + */ String os = ""; + /** + * Processeur de la tablette. + */ String processeur = ""; + /** + * Batterie de la tablette. + */ int batterie = 0; + /** + * Taille de l'écran de la tablette. + */ double ecran = 0.00; + /** + * Marque de la tablette. + */ String marque = ""; + /** + * Prix de la tablette. + */ int prix = 0; + /** + * Type tablette. + */ String typeProduit = "Tablette"; @Override diff --git a/src/main/java/TelephoneBuilder.java b/src/main/java/TelephoneBuilder.java index f8688d4471372230ec64cdd383606fb6fd71d8b6..85a0cb94af06783c092ba57347c4e2e1bfbb8222 100644 --- a/src/main/java/TelephoneBuilder.java +++ b/src/main/java/TelephoneBuilder.java @@ -1,11 +1,38 @@ +/** + * Classe du Builder téléphone. + */ public class TelephoneBuilder implements IProduitBuilder{ + /** + * Nom du téléphone. + */ String nom = ""; + /** + * Os du téléphone. + */ String os = ""; + /** + * Processeur du téléphone. + */ String processeur = ""; + /** + * Batterie du téléphone. + */ int batterie = 0; + /** + * Taille de l'écran du téléphone. + */ double ecran = 0.00; + /** + * Marque du téléphone. + */ String marque = ""; + /** + * Prix du téléphone. + */ int prix = 0; + /** + * Type téléphone. + */ String typeProduit = "Telephone"; @Override