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