diff --git a/Document/Iteration2/Iteration2.md b/Document/Iteration2/Iteration2.md index 91e1b22..ffb4d8e 100644 --- a/Document/Iteration2/Iteration2.md +++ b/Document/Iteration2/Iteration2.md @@ -23,7 +23,7 @@ flowchart LR 5. Le système demande au joueur 2 6. Le joueur 2 répond 7. Le système enregistre le nom du joueur 2 -8. Le système affiche le plateau ainsi que le nom du joueur qui doit jouer +8. Le système affiche le plateauNim ainsi que le nom du joueur qui doit jouer 9. Le joueur choisi dans quelle colonne il souhaite mettre un jeton 10. Le système vérifie si la partie est gagné 11. Le système affiche le vainqueur et demande si l'utilisateur souhaite refaire une partie ("y" or "n") @@ -112,7 +112,7 @@ classDiagram } class Plateau { - - byte[][] plateau + - byte[][] plateauNim - byte[] dernierCoup + Plateau () diff --git a/Document/Iteration3/Iteration3.md b/Document/Iteration3/Iteration3.md index 42dba5f..2d01e0d 100644 --- a/Document/Iteration3/Iteration3.md +++ b/Document/Iteration3/Iteration3.md @@ -140,7 +140,7 @@ graph LR 8. Le système demande aux joueurs s'ils veulent activer la rotation 9. Le joueur répond 10. Le système enregistre la réponse du joueur -11. Le système affiche le plateau ainsi que le nom du joueur qui doit jouer +11. Le système affiche le plateauNim ainsi que le nom du joueur qui doit jouer 12. Le joueur choisi dans quelle colonne il souhaite mettre un jeton 13. Le système vérifie si la partie est gagné 14. Le système affiche le vainqueur et demande si l'utilisateur souhaite refaire une partie ("y" or "n") @@ -169,7 +169,7 @@ graph LR 1. Le système affiche un message d'erreur 2. retour au point 11 du scénario nominal -- 13.c L'utilisateur choisit de faire tourner le plateau +- 13.c L'utilisateur choisit de faire tourner le plateauNim 1. Le système vérifie que l'option est activée 1. Le système affiche un message d'erreur 2. retour au point 11 du scénario nominal @@ -208,7 +208,7 @@ classDiagram # int nombrePartie = 0 # Joueur[] lesjoueurs - # Plateau plateau + # Plateau plateauNim # Ihm ihm + Controleur(Ihm ihm) @@ -252,7 +252,7 @@ classDiagram } class PlateauP4 { - - byte[][] plateau + - byte[][] plateauNim - byte[] dernierCoup + PlateauP4() @@ -339,15 +339,15 @@ public class Controleur{ private void toursDeJeu() { nombrePartie += 1; numeroJoueurCourant = 1; - plateau.reset(); - plateau.setOption(ihm.demanderOption()); - while (!plateau.verifierFin()) { + plateauNim.reset(); + plateauNim.setOption(ihm.demanderOption()); + while (!plateauNim.verifierFin()) { tourSuivant(); boolean estCoupCorrect = false; while (!estCoupCorrect) { try { estCoupCorrect = true; - ihm.afficherPlateau(plateau.toString()); + ihm.afficherPlateau(plateauNim.toString()); getCoup(); } catch (CoupImpossible | FormatReponseInvalide exception) { estCoupCorrect = false; @@ -371,23 +371,23 @@ public class Controleur{ public class ControleurNim{ public void jouer() { initJoueur(); - plateau = new PlateauNim(ihm.demanderNbTas); + plateauNim = new PlateauNim(ihm.demanderNbTas); tourDeJeu(); } protected void getCoup(){ int[] candidate = ihm.demanderCoupNim(getNomJoueurCourant()); - plateau.retirerBatonnets(candidate[0], candidate[1]); + plateauNim.retirerBatonnets(candidate[0], candidate[1]); } protected void victoire(){ - if (!plateau.verifierVictoire()){ + if (!plateauNim.verifierVictoire()){ ihm.afficherVictoire(getNomJoueurCourant(), getJoueurCourant().getNbVictoires(), nbParties, true); } else { getJoueurCourant().incrementVictoires(); ihm.afficherVictoire(getNomJoueurCourant(), getJoueurCourant().getNbVictoires(), nbParties, false); } - ihm.afficherPlateau(plateau.toString()); + ihm.afficherPlateau(plateauNim.toString()); } } @@ -396,18 +396,18 @@ public class ControleurNim{ public class ControleurP4{ public void jouer() { initJoueur(); - plateau = new PlateauP4(); + plateauNim = new PlateauP4(); tourDeJeu(); } protected void getCoup(){ if (ihm.demanderCoupOuRotation()){ byte candidate = ihm.demanderCoupP4(getNomJoueurCourant()); - plateau.placerJeton((byte) (candidate-1), (byte) (numeroJoueurCourant+1)); + plateauNim.placerJeton((byte) (candidate-1), (byte) (numeroJoueurCourant+1)); } else{ boolean candidate = ihm.demanderRotation(getNomJoueurCourant()); //à définir que signifie true gauche ou droite - plateau.rotation(candidate); + plateauNim.rotation(candidate); } } protected void victoire(){ diff --git a/Document/Misc/scenario.md b/Document/Misc/scenario.md index 0c4cf60..65b8c0b 100644 --- a/Document/Misc/scenario.md +++ b/Document/Misc/scenario.md @@ -136,7 +136,7 @@ graph LR 4. Le système demande au joueur 2 5. Le joueur 2 répond 6. Le système enregistre le nom du joueur 2 -7. Le système affiche le plateau ainsi que le nom du joueur qui doit jouer +7. Le système affiche le plateauNim ainsi que le nom du joueur qui doit jouer 8. Le joueur choisi dans quel colonne il souhaite jouer 9. Le système vérifie si la partie est gagné 10. Le système affiche le vainqueur et demande si l'utilisateur souhaite refaire une partie (y or n) diff --git a/Javadoc/allclasses-index.html b/Javadoc/allclasses-index.html index 8885232..b295bd8 100644 --- a/Javadoc/allclasses-index.html +++ b/Javadoc/allclasses-index.html @@ -102,11 +102,11 @@

All Classes and Interfaces<
Plateau
-
Classe représentant un plateau de jeu de Nim
+
Classe représentant un plateauNim de jeu de Nim
Plateau
-
Classe représentant un plateau de jeu de puissance 4
+
Classe représentant un plateauNim de jeu de puissance 4
Tas
diff --git a/Javadoc/controleur/ControleurJeuNim.html b/Javadoc/controleur/ControleurJeuNim.html index a1dc9cf..4499475 100644 --- a/Javadoc/controleur/ControleurJeuNim.html +++ b/Javadoc/controleur/ControleurJeuNim.html @@ -126,7 +126,7 @@

Field Summary

Numéro du joueur courant, x ∈ [0 ; 1]
private Plateau
-
plateau
+
plateauNim
Objet Plateau représentant une collection de tas
@@ -238,9 +238,9 @@

lesJoueurs

  • -
    -

    plateau

    -
    private Plateau plateau
    +
    +

    plateauNim

    +
    private Plateau plateauNim
    Objet Plateau représentant une collection de tas
  • @@ -283,7 +283,7 @@

    Method Details

    jouer

    public void jouer()

    Initialise une nouvelle partie en demandant le nombre de tas.

    -

    Les noms des joueurs, et en créant le plateau de jeu.

    +

    Les noms des joueurs, et en créant le plateauNim de jeu.

  • @@ -299,7 +299,7 @@

    commencerPartie

    toursDeJeu

    private void toursDeJeu()

    Facilite le déroulement complet d'une série de tours de jeu jusqu'à la fin.

    -

    À chaque tour, demande le coup au joueur courant, met à jour le plateau, et gère les erreurs.

    +

    À chaque tour, demande le coup au joueur courant, met à jour le plateauNim, et gère les erreurs.

    Après la fin du jeu, incrémente les victoires du joueur courant, affiche le résultat, puis demande si les joueurs veulent jouer encore.

    En cas de réponse affirmative, démarre une nouvelle partie ; sinon, termine le programme.

    diff --git a/Javadoc/controleur/ControleurP4.html b/Javadoc/controleur/ControleurP4.html index 6039cea..d4b4ee7 100644 --- a/Javadoc/controleur/ControleurP4.html +++ b/Javadoc/controleur/ControleurP4.html @@ -126,7 +126,7 @@

    Field Summary

    Numéro du joueur courant, x ∈ [0 ; 1]
    private Plateau
    -
    plateau
    +
    plateauNim
    Objet Plateau représentant la grille de puissance 4
    @@ -162,7 +162,7 @@

    Method Summary

    private void
    commencerPartie()
    -
    Incrémente le nombre de parties, reset / crée le plateau.
    +
    Incrémente le nombre de parties, reset / crée le plateauNim.
    private void
    finPartie()
    @@ -188,7 +188,7 @@

    Method Summary

    jouer()
    Initialise une nouvelle partie en demandant les noms des joueurs, - et en créant le plateau de jeu.
    + et en créant le plateauNim de jeu.
    private void
    toursDeJeu()
    @@ -239,9 +239,9 @@

    lesJoueurs

  • -
    -

    plateau

    -
    private Plateau plateau
    +
    +

    plateauNim

    +
    private Plateau plateauNim
    Objet Plateau représentant la grille de puissance 4
  • @@ -284,14 +284,14 @@

    Method Details

    jouer

    public void jouer()
    Initialise une nouvelle partie en demandant les noms des joueurs, - et en créant le plateau de jeu.
    + et en créant le plateauNim de jeu.
  • commencerPartie

    private void commencerPartie()
    -

    Incrémente le nombre de parties, reset / crée le plateau.

    +

    Incrémente le nombre de parties, reset / crée le plateauNim.

    Puis lance la séquence de tours de jeu.

  • @@ -300,7 +300,7 @@

    commencerPartie

    toursDeJeu

    private void toursDeJeu()

    Facilite le déroulement complet d'une série de tours de jeu jusqu'à la fin.

    -

    À chaque tour, demande le coup au joueur courant, met à jour le plateau, et gère les erreurs.

    +

    À chaque tour, demande le coup au joueur courant, met à jour le plateauNim, et gère les erreurs.

    Après la fin du jeu, incrémente les victoires du joueur courant, affiche le résultat, puis demande si les joueurs veulent jouer encore.

    En cas de réponse affirmative, démarre une nouvelle partie ; sinon, termine le programme.

    diff --git a/Javadoc/index-files/index-1.html b/Javadoc/index-files/index-1.html index 556a4ff..abe17be 100644 --- a/Javadoc/index-files/index-1.html +++ b/Javadoc/index-files/index-1.html @@ -59,7 +59,7 @@

    A

    afficherPlateau(String) - Method in class vue.Ihm
    -
    Affiche le plateau passé sous la forme d'une String
    +
    Affiche le plateauNim passé sous la forme d'une String
    afficherVictoire(String, int, int, boolean) - Method in class vue.Ihm
    diff --git a/Javadoc/index-files/index-12.html b/Javadoc/index-files/index-12.html index 44811f2..008166c 100644 --- a/Javadoc/index-files/index-12.html +++ b/Javadoc/index-files/index-12.html @@ -57,25 +57,25 @@

    P

    Permet de placer un jeton dans une colonne
    -
    plateau - Variable in class controleur.ControleurJeuNim
    +
    plateauNim - Variable in class controleur.ControleurJeuNim
    Objet Plateau représentant une collection de tas
    -
    plateau - Variable in class controleur.ControleurP4
    +
    plateauNim - Variable in class controleur.ControleurP4
    Objet Plateau représentant la grille de puissance 4
    -
    plateau - Variable in class modele.p4.Plateau
    +
    plateauNim - Variable in class modele.p4.Plateau
    -
    Le tableau représentant le plateau de puissance 4
    +
    Le tableau représentant le plateauNim de puissance 4
    Plateau - Class in modele.nim
    -
    Classe représentant un plateau de jeu de Nim
    +
    Classe représentant un plateauNim de jeu de Nim
    Plateau - Class in modele.p4
    -
    Classe représentant un plateau de jeu de puissance 4
    +
    Classe représentant un plateauNim de jeu de puissance 4
    Plateau() - Constructor for class modele.p4.Plateau
    diff --git a/Javadoc/index-files/index-13.html b/Javadoc/index-files/index-13.html index 241bb77..182b71a 100644 --- a/Javadoc/index-files/index-13.html +++ b/Javadoc/index-files/index-13.html @@ -55,11 +55,11 @@

    R

    reset() - Method in class modele.nim.Plateau
    -
    Remplit le plateau en créant les tas
    +
    Remplit le plateauNim en créant les tas
    reset() - Method in class modele.p4.Plateau
    -
    Remplit le plateau en créant le plateau
    +
    Remplit le plateauNim en créant le plateauNim
    retirerBatonnet(int) - Method in class modele.nim.Tas
    @@ -67,7 +67,7 @@

    R

    retirerBatonnets(int, int) - Method in class modele.nim.Plateau
    -
    Retire un nombre spécifié de bâtonnets d'un tas spécifié sur le plateau.
    +
    Retire un nombre spécifié de bâtonnets d'un tas spécifié sur le plateauNim.
    A C D E F G I J L M N P R S T V 
    All Classes and Interfaces|All Packages|Serialized Form diff --git a/Javadoc/index-files/index-16.html b/Javadoc/index-files/index-16.html index f31fbfb..a79f0bd 100644 --- a/Javadoc/index-files/index-16.html +++ b/Javadoc/index-files/index-16.html @@ -59,7 +59,7 @@

    V

    verifierFin() - Method in class modele.p4.Plateau
    -
    Permet de verifier si une partie est finie, c'est-à-dire si 4 pions sont alignés ou le plateau est plein
    +
    Permet de verifier si une partie est finie, c'est-à-dire si 4 pions sont alignés ou le plateauNim est plein
    verifierVictoire() - Method in class modele.p4.Plateau
    diff --git a/Javadoc/index-files/index-2.html b/Javadoc/index-files/index-2.html index ac0268b..b1ab562 100644 --- a/Javadoc/index-files/index-2.html +++ b/Javadoc/index-files/index-2.html @@ -67,7 +67,7 @@

    C

    commencerPartie() - Method in class controleur.ControleurP4
    -
    Incrémente le nombre de parties, reset / crée le plateau.
    +
    Incrémente le nombre de parties, reset / crée le plateauNim.
    compareTo(Joueur) - Method in class modele.Joueur
    diff --git a/Javadoc/index-files/index-4.html b/Javadoc/index-files/index-4.html index c67f77a..f36af71 100644 --- a/Javadoc/index-files/index-4.html +++ b/Javadoc/index-files/index-4.html @@ -55,7 +55,7 @@

    E

    estPlein() - Method in class modele.p4.Plateau
    -
    Permet de vérifier si le plateau est plein
    +
    Permet de vérifier si le plateauNim est plein
    estVide() - Method in class modele.nim.Tas
    diff --git a/Javadoc/index-files/index-6.html b/Javadoc/index-files/index-6.html index 60c097a..8c78147 100644 --- a/Javadoc/index-files/index-6.html +++ b/Javadoc/index-files/index-6.html @@ -91,11 +91,11 @@

    G

    getPlateau() - Method in class modele.nim.Plateau
    -
    Permet de retourner l'état du plateau sous la forme d'un tableau d'entier
    +
    Permet de retourner l'état du plateauNim sous la forme d'un tableau d'entier
    getPlateau() - Method in class modele.p4.Plateau
    -
    Permet de retourner l'état du plateau sous la forme d'un tableau de byte
    +
    Permet de retourner l'état du plateauNim sous la forme d'un tableau de byte
    A C D E F G I J L M N P R S T V 
    All Classes and Interfaces|All Packages|Serialized Form diff --git a/Javadoc/index-files/index-8.html b/Javadoc/index-files/index-8.html index 009b086..dd81309 100644 --- a/Javadoc/index-files/index-8.html +++ b/Javadoc/index-files/index-8.html @@ -60,7 +60,7 @@

    J

    jouer() - Method in class controleur.ControleurP4
    Initialise une nouvelle partie en demandant les noms des joueurs, - et en créant le plateau de jeu.
    + et en créant le plateauNim de jeu.
    Joueur - Class in modele
    diff --git a/Javadoc/modele/Plateau.html b/Javadoc/modele/Plateau.html index 6b5c32c..85a3233 100644 --- a/Javadoc/modele/Plateau.html +++ b/Javadoc/modele/Plateau.html @@ -86,13 +86,13 @@

    Class Plateau

    java.lang.Object -
    modele.nim.Plateau
    +
    modele.PlateauNim

    public class Plateau extends Object
    -
    Classe représentant un plateau de jeu de Nim
    +
    Classe représentant un plateauNim de jeu de Nim
    @@ -235,7 +235,7 @@

    Method Details

    reset

    public void reset()
    -
    Remplit le plateau en créant les tas +
    Remplit le plateauNim en créant les tas Remplace les tas déjà existant
    @@ -254,7 +254,7 @@

    verifierFin

    getPlateau

    public int[] getPlateau()
    -
    Permet de retourner l'état du plateau sous la forme d'un tableau d'entier +
    Permet de retourner l'état du plateauNim sous la forme d'un tableau d'entier Inutilisé, pourra être supprimé si jamais utilisé (sera probablement utilisée quand les IA seront implémenté)
    @@ -270,7 +270,7 @@

    retirerBatonnets

    int n) throws NombreBatonnetsInvalide, NumeroTasInvalide
    -
    Retire un nombre spécifié de bâtonnets d'un tas spécifié sur le plateau.
    +
    Retire un nombre spécifié de bâtonnets d'un tas spécifié sur le plateauNim.
    Parameters:
    m - Le numéro du tas à partir duquel retirer les bâtonnets.
    diff --git a/Javadoc/modele/Tas.html b/Javadoc/modele/Tas.html index a059fcb..0e82898 100644 --- a/Javadoc/modele/Tas.html +++ b/Javadoc/modele/Tas.html @@ -86,7 +86,7 @@

    Class Tas

    java.lang.Object -
    modele.nim.Tas
    +
    modele.Tas

    diff --git a/Javadoc/modele/nim/Plateau.html b/Javadoc/modele/nim/Plateau.html index a9dc8fb..8342249 100644 --- a/Javadoc/modele/nim/Plateau.html +++ b/Javadoc/modele/nim/Plateau.html @@ -86,13 +86,13 @@

    Class Plateau

    java.lang.Object -
    modele.nim.Plateau
    +
    modele.PlateauNim

    public class Plateau extends Object
    -
    Classe représentant un plateau de jeu de Nim
    +
    Classe représentant un plateauNim de jeu de Nim
      @@ -147,18 +147,18 @@

      Method Summary

      int[]
      -
      Permet de retourner l'état du plateau sous la forme d'un tableau d'entier
      +
      Permet de retourner l'état du plateauNim sous la forme d'un tableau d'entier
      void
      -
      Remplit le plateau en créant les tas
      +
      Remplit le plateauNim en créant les tas
      void
      retirerBatonnets(int m, int n)
      -
      Retire un nombre spécifié de bâtonnets d'un tas spécifié sur le plateau.
      +
      Retire un nombre spécifié de bâtonnets d'un tas spécifié sur le plateauNim.
      @@ -216,7 +216,7 @@

      Plateau

      Permet de construire un nouveau Plateau, en fonction d'un nombre de tas.
      Parameters:
      -
      nombreTas - : nombre de tas à créer dans le plateau
      +
      nombreTas - : nombre de tas à créer dans le plateauNim
    @@ -232,7 +232,7 @@

    Method Details

    reset

    public void reset()
    -

    Remplit le plateau en créant les tas

    +

    Remplit le plateauNim en créant les tas

    Remplace les tas déjà existant

    @@ -251,7 +251,7 @@

    verifierFin

    getPlateau

    public int[] getPlateau()
    -

    Permet de retourner l'état du plateau sous la forme d'un tableau d'entier

    +

    Permet de retourner l'état du plateauNim sous la forme d'un tableau d'entier

    Inutilisé, pourra être supprimé si jamais utilisé (sera probablement utilisée quand les IA seront implémenté)

    @@ -267,7 +267,7 @@

    retirerBatonnets

    int n) throws NombreBatonnetsInvalide, NumeroTasInvalide
    -
    Retire un nombre spécifié de bâtonnets d'un tas spécifié sur le plateau.
    +
    Retire un nombre spécifié de bâtonnets d'un tas spécifié sur le plateauNim.
    Parameters:
    m - Le numéro du tas à partir duquel retirer les bâtonnets.
    diff --git a/Javadoc/modele/nim/Tas.html b/Javadoc/modele/nim/Tas.html index 753fa08..087e089 100644 --- a/Javadoc/modele/nim/Tas.html +++ b/Javadoc/modele/nim/Tas.html @@ -86,7 +86,7 @@

    Class Tas

    java.lang.Object -
    modele.nim.Tas
    +
    modele.Tas

    diff --git a/Javadoc/modele/nim/TestPlateauNim.html b/Javadoc/modele/nim/TestPlateauNim.html index f04173f..df3f39d 100644 --- a/Javadoc/modele/nim/TestPlateauNim.html +++ b/Javadoc/modele/nim/TestPlateauNim.html @@ -220,8 +220,8 @@

    testVerifierFin

    public void testVerifierFin()

    Test :

      -
    • Le cas où le plateau n'est pas vide
    • -
    • Le cas où le plateau est vide
    • +
    • Le cas où le plateauNim n'est pas vide
    • +
    • Le cas où le plateauNim est vide
    See Also:
    diff --git a/Javadoc/modele/nim/package-summary.html b/Javadoc/modele/nim/package-summary.html index d5fda48..3b04794 100644 --- a/Javadoc/modele/nim/package-summary.html +++ b/Javadoc/modele/nim/package-summary.html @@ -99,7 +99,7 @@

    Package modele.nim

    Description
    -
    Classe représentant un plateau de jeu de Nim
    +
    Classe représentant un plateauNim de jeu de Nim
    diff --git a/Javadoc/modele/p4/Plateau.html b/Javadoc/modele/p4/Plateau.html index 5af6424..f734626 100644 --- a/Javadoc/modele/p4/Plateau.html +++ b/Javadoc/modele/p4/Plateau.html @@ -86,13 +86,13 @@

    Class Plateau

    java.lang.Object -
    modele.p4.Plateau
    +
    modele.PlateauP4

    public class Plateau extends Object
    -
    Classe représentant un plateau de jeu de puissance 4
    +
    Classe représentant un plateauNim de jeu de puissance 4
      @@ -111,9 +111,9 @@

      Field Summary

      Stock la position où le dernier jeton a été posé
      private byte[][]
      - +
      -
      Le tableau représentant le plateau de puissance 4
      +
      Le tableau représentant le plateauNim de puissance 4
    @@ -147,12 +147,12 @@

    Method Summary

    boolean
    -
    Permet de vérifier si le plateau est plein
    +
    Permet de vérifier si le plateauNim est plein
    byte[][]
    -
    Permet de retourner l'état du plateau sous la forme d'un tableau de byte
    +
    Permet de retourner l'état du plateauNim sous la forme d'un tableau de byte
    void
    placerJeton(byte colonne, @@ -163,7 +163,7 @@

    Method Summary

    void
    -
    Remplit le plateau en créant le plateau
    +
    Remplit le plateauNim en créant le plateauNim
    @@ -173,7 +173,7 @@

    Method Summary

    boolean
    -
    Permet de verifier si une partie est finie, c'est-à-dire si 4 pions sont alignés ou le plateau est plein
    +
    Permet de verifier si une partie est finie, c'est-à-dire si 4 pions sont alignés ou le plateauNim est plein
    boolean
    @@ -198,10 +198,10 @@

    Methods inherited from cl

    Field Details

    • -
      -

      plateau

      -
      private byte[][] plateau
      -
      Le tableau représentant le plateau de puissance 4
      +
      +

      plateauNim

      +
      private byte[][] plateauNim
      +
      Le tableau représentant le plateauNim de puissance 4
    • @@ -238,15 +238,15 @@

      Method Details

      reset

      public void reset()
      -

      Remplit le plateau en créant le plateau

      -

      Remplace le plateau déjà existant

      +

      Remplit le plateauNim en créant le plateauNim

      +

      Remplace le plateauNim déjà existant

    • verifierFin

      public boolean verifierFin()
      -
      Permet de verifier si une partie est finie, c'est-à-dire si 4 pions sont alignés ou le plateau est plein
      +
      Permet de verifier si une partie est finie, c'est-à-dire si 4 pions sont alignés ou le plateauNim est plein
      Returns:
      true si la partie est fini, sinon false
      @@ -268,10 +268,10 @@

      verifierVictoire

      estPlein

      public boolean estPlein()
      -
      Permet de vérifier si le plateau est plein
      +
      Permet de vérifier si le plateauNim est plein
      Returns:
      -
      true si le plateau est plein, sinon false
      +
      true si le plateauNim est plein, sinon false
    • @@ -279,12 +279,12 @@

      estPlein

      getPlateau

      public byte[][] getPlateau()
      -

      Permet de retourner l'état du plateau sous la forme d'un tableau de byte

      +

      Permet de retourner l'état du plateauNim sous la forme d'un tableau de byte

      Inutilisé, pourra être supprimé si jamais utilisé (sera probablement utilisée quand les IA seront implémenté)

      Returns:
      -
      un tableau représentant le plateau de puissance 4
      +
      un tableau représentant le plateauNim de puissance 4
      diff --git a/Javadoc/modele/p4/TestPlateauP4.html b/Javadoc/modele/p4/TestPlateauP4.html index 1af5935..c560077 100644 --- a/Javadoc/modele/p4/TestPlateauP4.html +++ b/Javadoc/modele/p4/TestPlateauP4.html @@ -239,8 +239,8 @@

      testEstPlein

      public void testEstPlein()

      Test :

        -
      • Le cas où le plateau n'est pas plein
      • -
      • Le cas où le plateau est plein
      • +
      • Le cas où le plateauNim n'est pas plein
      • +
      • Le cas où le plateauNim est plein
      See Also:
      diff --git a/Javadoc/modele/p4/package-summary.html b/Javadoc/modele/p4/package-summary.html index 0276e1d..f5da635 100644 --- a/Javadoc/modele/p4/package-summary.html +++ b/Javadoc/modele/p4/package-summary.html @@ -99,7 +99,7 @@

      Package modele.p4

      Description
      -
      Classe représentant un plateau de jeu de puissance 4
      +
      Classe représentant un plateauNim de jeu de puissance 4
    diff --git a/Javadoc/test/modele/nim/TestPlateauNim.html b/Javadoc/test/modele/nim/TestPlateauNim.html index cfd450f..08d541d 100644 --- a/Javadoc/test/modele/nim/TestPlateauNim.html +++ b/Javadoc/test/modele/nim/TestPlateauNim.html @@ -220,8 +220,8 @@

    testVerifierFin

    public void testVerifierFin()

    Test :

      -
    • Le cas où le plateau n'est pas vide
    • -
    • Le cas où le plateau est vide
    • +
    • Le cas où le plateauNim n'est pas vide
    • +
    • Le cas où le plateauNim est vide
    See Also:
    diff --git a/Javadoc/test/modele/p4/TestPlateauP4.html b/Javadoc/test/modele/p4/TestPlateauP4.html index f9fd157..10cd4e5 100644 --- a/Javadoc/test/modele/p4/TestPlateauP4.html +++ b/Javadoc/test/modele/p4/TestPlateauP4.html @@ -239,8 +239,8 @@

    testEstPlein

    public void testEstPlein()

    Test :

      -
    • Le cas où le plateau n'est pas plein
    • -
    • Le cas où le plateau est plein
    • +
    • Le cas où le plateauNim n'est pas plein
    • +
    • Le cas où le plateauNim est plein
    See Also:
    diff --git a/Javadoc/test/vue/TestIhm.html b/Javadoc/test/vue/TestIhm.html index aa254f4..12169a5 100644 --- a/Javadoc/test/vue/TestIhm.html +++ b/Javadoc/test/vue/TestIhm.html @@ -136,7 +136,7 @@

    Method Summary

    void
    -
    Test le fonctionnement normal d'afficherPlateau avec un plateau du jeu de Nim
    +
    Test le fonctionnement normal d'afficherPlateau avec un plateauNim du jeu de Nim
    void
    @@ -289,7 +289,7 @@

    testDemanderJouerEncore

    testAfficherPlateauNim

    public void testAfficherPlateauNim()
    -
    Test le fonctionnement normal d'afficherPlateau avec un plateau du jeu de Nim
    +
    Test le fonctionnement normal d'afficherPlateau avec un plateauNim du jeu de Nim
    See Also:
    diff --git a/Javadoc/vue/Ihm.html b/Javadoc/vue/Ihm.html index b99d2d6..4db6e86 100644 --- a/Javadoc/vue/Ihm.html +++ b/Javadoc/vue/Ihm.html @@ -145,9 +145,9 @@

    Method Summary

    Affiche un message d'erreur préfixé d'une icône d'avertissement.
    void
    - +
    afficherPlateau(String plateauNim)
    -
    Affiche le plateau passé sous la forme d'une String
    +
    Affiche le plateauNim passé sous la forme d'une String
    void
    afficherVictoire(String nomJoueur, @@ -291,11 +291,11 @@

    demanderJouerEncore

  • afficherPlateau

    -
    public void afficherPlateau(String plateau)
    -
    Affiche le plateau passé sous la forme d'une String
    +
    public void afficherPlateau(String plateauNim)
    +
    Affiche le plateauNim passé sous la forme d'une String
    Parameters:
    -
    plateau - le plateau sous forme de string
    +
    plateauNim - le plateauNim sous forme de string
  • diff --git a/Javadoc/vue/TestIhm.html b/Javadoc/vue/TestIhm.html index 4312a1f..d8d9d81 100644 --- a/Javadoc/vue/TestIhm.html +++ b/Javadoc/vue/TestIhm.html @@ -136,7 +136,7 @@

    Method Summary

    void
    -
    Test le fonctionnement normal d'afficherPlateau avec un plateau du jeu de Nim
    +
    Test le fonctionnement normal d'afficherPlateau avec un plateauNim du jeu de Nim
    void
    @@ -289,7 +289,7 @@

    testDemanderJouerEncore

    testAfficherPlateauNim

    public void testAfficherPlateauNim()
    -
    Test le fonctionnement normal d'afficherPlateau avec un plateau du jeu de Nim
    +
    Test le fonctionnement normal d'afficherPlateau avec un plateauNim du jeu de Nim
    See Also:
    diff --git a/Test/test/modele/nim/TestPlateauNim.java b/Test/test/modele/nim/TestPlateauNim.java index d5f675a..f106eab 100644 --- a/Test/test/modele/nim/TestPlateauNim.java +++ b/Test/test/modele/nim/TestPlateauNim.java @@ -2,27 +2,27 @@ import exception.NombreBatonnetsInvalide; import exception.NumeroTasInvalide; -import modele.nim.Plateau; +import modele.PlateauNim; import org.junit.Test; import static org.junit.Assert.*; /** - * Classe contenant les tests de src/modele/Nim/Plateau.java - * @see modele.nim.Plateau + * Classe contenant les tests de src/modele/Nim/PlateauNim.java + * @see PlateauNim */ public class TestPlateauNim { /** - * Test la Création d'un Plateau et getPlateau() - * @see Plateau#getPlateau() + * Test la Création d'un PlateauNim et getPlateau() + * @see PlateauNim#getPlateau() */ @Test public void testGetPlateau(){ int nombreTas = 3; - Plateau plateau = new Plateau(nombreTas); - plateau.reset(); + PlateauNim plateauNim = new PlateauNim(nombreTas); + plateauNim.reset(); int[] resutlatAttendu = {1,3,5}; - assertArrayEquals(resutlatAttendu, plateau.getPlateau()); + assertArrayEquals(resutlatAttendu, plateauNim.getPlateau()); } /** @@ -32,34 +32,34 @@ public void testGetPlateau(){ *
  • Le cas où le nombre de bâtonnets est insuffisant
  • *
  • Le fonctionnement normal
  • * - * @see Plateau#retirerBatonnets(int, int) + * @see PlateauNim#retirerBatonnets(int, int) */ @Test public void testRetirerBatonnets(){ int nombreTas = 3; int[] resutlatAttendu = {1,3,2}; - Plateau plateau = new Plateau(nombreTas); - plateau.reset(); + PlateauNim plateauNim = new PlateauNim(nombreTas); + plateauNim.reset(); //Test le cas où le tas est inexistant try{ - plateau.retirerBatonnets(4,2); + plateauNim.retirerBatonnets(4,2); fail("Le tas sensé est inexistant"); } catch (NombreBatonnetsInvalide | NumeroTasInvalide ignored) {} //Test le cas où le nombre de bâtonnets est insuffisant try{ - plateau.retirerBatonnets(3,6); + plateauNim.retirerBatonnets(3,6); fail("Le nombre de bâtonnets est sensé est insuffisant"); } catch (NombreBatonnetsInvalide | NumeroTasInvalide ignored) {} //Test le fonctionnement normal try{ - plateau.retirerBatonnets(3,3); + plateauNim.retirerBatonnets(3,3); } catch (NombreBatonnetsInvalide | NumeroTasInvalide ignored) { fail("Erreur retirerBâtonnets"); } - assertArrayEquals(resutlatAttendu, plateau.getPlateau()); + assertArrayEquals(resutlatAttendu, plateauNim.getPlateau()); } /** @@ -68,42 +68,42 @@ public void testRetirerBatonnets(){ *
  • Le cas où le plateau n'est pas vide
  • *
  • Le cas où le plateau est vide
  • * - * @see Plateau#verifierFin() + * @see PlateauNim#verifierFin() */ @Test public void testVerifierFin(){ int nombreTas = 3; - Plateau plateau = new Plateau(nombreTas); - plateau.reset(); + PlateauNim plateauNim = new PlateauNim(nombreTas); + plateauNim.reset(); try{ - plateau.retirerBatonnets(1,1); - plateau.retirerBatonnets(2,3); + plateauNim.retirerBatonnets(1,1); + plateauNim.retirerBatonnets(2,3); } catch (NombreBatonnetsInvalide | NumeroTasInvalide ignored) { fail("Erreur retirerBâtonnets"); } - //Test le cas où le plateau n'est pas vide - assertFalse(plateau.verifierFin()); + //Test le cas où le plateauNim n'est pas vide + assertFalse(plateauNim.verifierFin()); try{ - plateau.retirerBatonnets(3,5); + plateauNim.retirerBatonnets(3,5); } catch (NombreBatonnetsInvalide | NumeroTasInvalide ignored) { fail("Erreur retirerBâtonnets"); } - //Test le cas où le plateau est vide - assertTrue(plateau.verifierFin()); + //Test le cas où le plateauNim est vide + assertTrue(plateauNim.verifierFin()); } /** * Test de résultat de toString - * @see Plateau#toString() + * @see PlateauNim#toString() */ @Test public void testToString(){ int nombreTas = 3; - Plateau plateau = new Plateau(nombreTas); - plateau.reset(); + PlateauNim plateauNim = new PlateauNim(nombreTas); + plateauNim.reset(); String resultatAttendu = " | \n ||| \n|||||\n"; - assertEquals(resultatAttendu, plateau.toString()); + assertEquals(resultatAttendu, plateauNim.toString()); } } diff --git a/Test/test/modele/nim/TestTas.java b/Test/test/modele/nim/TestTas.java index ad7ca14..c36ae95 100644 --- a/Test/test/modele/nim/TestTas.java +++ b/Test/test/modele/nim/TestTas.java @@ -1,13 +1,13 @@ package test.modele.nim; import exception.NombreBatonnetsInvalide; -import modele.nim.Tas; +import modele.Tas; import org.junit.Test; import static org.junit.Assert.*; /** * Classe contenant les tests de src/modele/Nim/Tas.java - * @see modele.nim.Tas + * @see Tas */ public class TestTas { /** diff --git a/Test/test/modele/p4/TestPlateauP4.java b/Test/test/modele/p4/TestPlateauP4.java index a4c7ff8..d625aa6 100644 --- a/Test/test/modele/p4/TestPlateauP4.java +++ b/Test/test/modele/p4/TestPlateauP4.java @@ -2,24 +2,24 @@ import exception.ColonnePleine; import exception.FormatReponseInvalide; -import modele.p4.Plateau; +import modele.PlateauP4; import org.junit.Test; import static org.junit.Assert.*; /** - * Classe contenant les tests de src/modele/p4/Plateau.java - * @see modele.p4.Plateau + * Classe contenant les tests de src/modele/p4/PlateauNim.java + * @see PlateauP4 */ public class TestPlateauP4 { /** - * Test la Création d'un Plateau et getPlateau() - * @see Plateau#getPlateau() + * Test la Création d'un PlateauNim et getPlateau() + * @see PlateauP4#getPlateau() */ @Test public void testInit(){ - Plateau plateau = new Plateau(); - plateau.reset(); + PlateauP4 plateauP4 = new PlateauP4(); + plateauP4.reset(); byte[][] resultatAttendu = { {0,0,0,0,0,0,0}, @@ -30,7 +30,7 @@ public void testInit(){ {0,0,0,0,0,0,0}, {0,0,0,0,0,0,0}, }; - assertEquals(resultatAttendu, plateau.getPlateau()); + assertEquals(resultatAttendu, plateauP4.getPlateau()); } /** @@ -39,12 +39,12 @@ public void testInit(){ *
  • Le fonctionnement normal
  • *
  • Le cas où la colonne choisie est pleine
  • * - * @see Plateau#placerJeton(byte, byte) + * @see PlateauP4#placerJeton(byte, byte) */ @Test public void testPlacerJeton() { - Plateau plateau = new Plateau(); - plateau.reset(); + PlateauP4 plateauP4 = new PlateauP4(); + plateauP4.reset(); //Test le fonctionnement normal byte[][] resultatAttendu = { @@ -57,11 +57,11 @@ public void testPlacerJeton() { {0,0,0,1,0,0,0}, }; try { - plateau.placerJeton((byte) 3, (byte) 1); + plateauP4.placerJeton((byte) 3, (byte) 1); } catch (ColonnePleine | FormatReponseInvalide e){ fail("Erreur placerJeton"); } - assertEquals(resultatAttendu,plateau.getPlateau()); + assertEquals(resultatAttendu, plateauP4.getPlateau()); //Remplissage de la colonne resultatAttendu = @@ -76,16 +76,16 @@ public void testPlacerJeton() { }; try { for (int i = 0; i < 6; i++) { - plateau.placerJeton((byte) 3, (byte) 1); + plateauP4.placerJeton((byte) 3, (byte) 1); } } catch (ColonnePleine | FormatReponseInvalide e){ fail("Erreur placerJeton"); } - assertEquals(resultatAttendu,plateau.getPlateau()); + assertEquals(resultatAttendu, plateauP4.getPlateau()); //Test le cas où la colonne choisie est pleine try { - plateau.placerJeton((byte) 3, (byte) 1); + plateauP4.placerJeton((byte) 3, (byte) 1); fail("La colonne est sensé être pleine"); } catch (ColonnePleine | FormatReponseInvalide ignored){} } @@ -96,12 +96,12 @@ public void testPlacerJeton() { *
  • Le cas où le plateau n'est pas plein
  • *
  • Le cas où le plateau est plein
  • * - * @see Plateau#estPlein() + * @see PlateauP4#estPlein() */ @Test public void testEstPlein(){ - Plateau plateau = new Plateau(); - plateau.reset(); + PlateauP4 plateauP4 = new PlateauP4(); + plateauP4.reset(); byte[][] resultatAttendu = { {2,0,2,1,0,1,2}, @@ -113,179 +113,179 @@ public void testEstPlein(){ {1,1,2,1,2,1,2}, }; - //Remplissage partiel du plateau + //Remplissage partiel du plateauP4 try { for (int ligne = 0; ligne < resultatAttendu.length; ligne++) { for (int colonne = 0; colonne < resultatAttendu[0].length; colonne++) { - plateau.placerJeton((byte) colonne, resultatAttendu[ligne][colonne]); + plateauP4.placerJeton((byte) colonne, resultatAttendu[ligne][colonne]); } } }catch (ColonnePleine | FormatReponseInvalide e){ fail("Erreur placerJeton"); } - //Test le cas où le plateau n'est pas plein - assertFalse(plateau.estPlein()); + //Test le cas où le plateauP4 n'est pas plein + assertFalse(plateauP4.estPlein()); - //Remplissage total du plateau + //Remplissage total du plateauP4 try { - plateau.placerJeton((byte) 1, (byte) 1); - plateau.placerJeton((byte) 4, (byte) 2); + plateauP4.placerJeton((byte) 1, (byte) 1); + plateauP4.placerJeton((byte) 4, (byte) 2); } catch (ColonnePleine | FormatReponseInvalide e) { fail("Erreur placerJeton"); } - //Test le cas où le plateau est plein - assertTrue(plateau.estPlein()); + //Test le cas où le plateauP4 est plein + assertTrue(plateauP4.estPlein()); } /** * Test verifierVictoire en cas de victoire sur la ligne horizontale (-) - * @see Plateau#verifierVictoire() + * @see PlateauP4#verifierVictoire() */ @Test public void testVerifierVictoireHorizontal(){ - Plateau plateau = new Plateau(); - plateau.reset(); + PlateauP4 plateauP4 = new PlateauP4(); + plateauP4.reset(); try { - plateau.placerJeton((byte) 0, (byte) 1); - plateau.placerJeton((byte) 1, (byte) 1); - plateau.placerJeton((byte) 2, (byte) 1); + plateauP4.placerJeton((byte) 0, (byte) 1); + plateauP4.placerJeton((byte) 1, (byte) 1); + plateauP4.placerJeton((byte) 2, (byte) 1); } catch (ColonnePleine | FormatReponseInvalide e) { fail("Erreur placerJeton"); } //Test la non victoire - assertFalse(plateau.verifierVictoire()); + assertFalse(plateauP4.verifierVictoire()); try { - plateau.placerJeton((byte) 3, (byte) 1); + plateauP4.placerJeton((byte) 3, (byte) 1); } catch (ColonnePleine | FormatReponseInvalide e) { fail("Erreur placerJeton"); } //Test la victoire - assertTrue(plateau.verifierVictoire()); + assertTrue(plateauP4.verifierVictoire()); } /** * Test verifierVictoire en cas de victoire sur la ligne verticale (|) - * @see Plateau#verifierVictoire() + * @see PlateauP4#verifierVictoire() */ @Test public void testVerifierVictoireVertical(){ - Plateau plateau = new Plateau(); - plateau.reset(); + PlateauP4 plateauP4 = new PlateauP4(); + plateauP4.reset(); try { for (int i = 0; i < 3; i++) { - plateau.placerJeton((byte) 0, (byte) 1); + plateauP4.placerJeton((byte) 0, (byte) 1); } } catch (ColonnePleine | FormatReponseInvalide e) { fail("Erreur placerJeton"); } //Test la non victoire - assertFalse(plateau.verifierVictoire()); + assertFalse(plateauP4.verifierVictoire()); try { - plateau.placerJeton((byte) 0, (byte) 1); + plateauP4.placerJeton((byte) 0, (byte) 1); } catch (ColonnePleine | FormatReponseInvalide e) { fail("Erreur placerJeton"); } //Test la victoire - assertTrue(plateau.verifierVictoire()); + assertTrue(plateauP4.verifierVictoire()); } /** * Test verifierVictoire en cas de victoire sur la ligne diagonale partant de en haut à gauche jusqu'à en bas à droite (\) - * @see Plateau#verifierVictoire() + * @see PlateauP4#verifierVictoire() */ @Test public void testVerifierVictoireDiagonal1(){ - Plateau plateau = new Plateau(); - plateau.reset(); + PlateauP4 plateauP4 = new PlateauP4(); + plateauP4.reset(); try { - plateau.placerJeton((byte) 0, (byte) 1); - plateau.placerJeton((byte) 1, (byte) 2); - plateau.placerJeton((byte) 1, (byte) 1); - plateau.placerJeton((byte) 2, (byte) 2); - plateau.placerJeton((byte) 2, (byte) 1); - plateau.placerJeton((byte) 3, (byte) 2); - plateau.placerJeton((byte) 2, (byte) 1); - plateau.placerJeton((byte) 3, (byte) 2); - plateau.placerJeton((byte) 4, (byte) 1); - plateau.placerJeton((byte) 3, (byte) 2); + plateauP4.placerJeton((byte) 0, (byte) 1); + plateauP4.placerJeton((byte) 1, (byte) 2); + plateauP4.placerJeton((byte) 1, (byte) 1); + plateauP4.placerJeton((byte) 2, (byte) 2); + plateauP4.placerJeton((byte) 2, (byte) 1); + plateauP4.placerJeton((byte) 3, (byte) 2); + plateauP4.placerJeton((byte) 2, (byte) 1); + plateauP4.placerJeton((byte) 3, (byte) 2); + plateauP4.placerJeton((byte) 4, (byte) 1); + plateauP4.placerJeton((byte) 3, (byte) 2); } catch (ColonnePleine | FormatReponseInvalide e) { fail("Erreur placerJeton"); } //Test la non victoire - assertFalse(plateau.verifierVictoire()); + assertFalse(plateauP4.verifierVictoire()); try { - plateau.placerJeton((byte) 3, (byte) 1); + plateauP4.placerJeton((byte) 3, (byte) 1); } catch (ColonnePleine | FormatReponseInvalide e) { fail("Erreur placerJeton"); } //Test la victoire - assertTrue(plateau.verifierVictoire()); + assertTrue(plateauP4.verifierVictoire()); } /** * Test verifierVictoire en cas de victoire sur ligne diagonale partant de en bas à gauche jusqu'à en haut à droite (/) - * @see Plateau#verifierVictoire() + * @see PlateauP4#verifierVictoire() */ @Test public void testVerifierVictoireDiagonal2(){ - Plateau plateau = new Plateau(); - plateau.reset(); + PlateauP4 plateauP4 = new PlateauP4(); + plateauP4.reset(); try { - plateau.placerJeton((byte) 6, (byte) 1); - plateau.placerJeton((byte) 5, (byte) 2); - plateau.placerJeton((byte) 5, (byte) 1); - plateau.placerJeton((byte) 4, (byte) 2); - plateau.placerJeton((byte) 4, (byte) 1); - plateau.placerJeton((byte) 3, (byte) 2); - plateau.placerJeton((byte) 4, (byte) 1); - plateau.placerJeton((byte) 3, (byte) 2); - plateau.placerJeton((byte) 2, (byte) 1); - plateau.placerJeton((byte) 3, (byte) 2); + plateauP4.placerJeton((byte) 6, (byte) 1); + plateauP4.placerJeton((byte) 5, (byte) 2); + plateauP4.placerJeton((byte) 5, (byte) 1); + plateauP4.placerJeton((byte) 4, (byte) 2); + plateauP4.placerJeton((byte) 4, (byte) 1); + plateauP4.placerJeton((byte) 3, (byte) 2); + plateauP4.placerJeton((byte) 4, (byte) 1); + plateauP4.placerJeton((byte) 3, (byte) 2); + plateauP4.placerJeton((byte) 2, (byte) 1); + plateauP4.placerJeton((byte) 3, (byte) 2); } catch (ColonnePleine | FormatReponseInvalide e) { fail("Erreur placerJeton"); } //Test la non victoire - assertFalse(plateau.verifierVictoire()); + assertFalse(plateauP4.verifierVictoire()); try { - plateau.placerJeton((byte) 3, (byte) 1); + plateauP4.placerJeton((byte) 3, (byte) 1); } catch (ColonnePleine | FormatReponseInvalide e) { fail("Erreur placerJeton"); } //Test la victoire - assertTrue(plateau.verifierVictoire()); + assertTrue(plateauP4.verifierVictoire()); } /** * Test de résultat de toString - * @see Plateau#toString() + * @see PlateauP4#toString() */ @Test public void testToString(){ - Plateau plateau = new Plateau(); - plateau.reset(); + PlateauP4 plateauP4 = new PlateauP4(); + plateauP4.reset(); try { - plateau.placerJeton((byte) 0, (byte) 1); - plateau.placerJeton((byte) 1, (byte) 2); + plateauP4.placerJeton((byte) 0, (byte) 1); + plateauP4.placerJeton((byte) 1, (byte) 2); } catch (ColonnePleine | FormatReponseInvalide e) { fail("Erreur placerJeton"); } @@ -299,6 +299,6 @@ public void testToString(){ "⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ \n" + "\uD83D\uDD34 \uD83D\uDFE1 ⚫ ⚫ ⚫ ⚫ ⚫ \n"; - assertEquals(reponseAttendu, plateau.toString()); + assertEquals(reponseAttendu, plateauP4.toString()); } } diff --git a/Test/test/vue/TestIhm.java b/Test/test/vue/TestIhm.java index e39f574..85c5191 100644 --- a/Test/test/vue/TestIhm.java +++ b/Test/test/vue/TestIhm.java @@ -2,7 +2,8 @@ import exception.ColonnePleine; import exception.FormatReponseInvalide; -import modele.nim.Plateau; +import modele.PlateauNim; +import modele.PlateauP4; import org.junit.Test; import exception.NombreTasInvalides; import vue.Ihm; @@ -236,11 +237,11 @@ public void testAfficherPlateauNim() { System.setOut(printStream); //redéfinition de out String reponseAttendu = " | \n ||| \n|||||\n\r\n"; - Plateau plateau = new Plateau(3); - plateau.reset(); + PlateauNim plateauNim = new PlateauNim(3); + plateauNim.reset(); Ihm ihm = new Ihm(); //Test le fonctionnement normal - ihm.afficherPlateau(plateau.toString()); + ihm.afficherPlateau(plateauNim.toString()); assertEquals(reponseAttendu,out.toString()); //Rétablissement des valeurs par défault @@ -268,18 +269,18 @@ public void testAfficherPlateauP4() { "⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ \n" + "⚫ ⚫ ⚫ ⚫ ⚫ ⚫ ⚫ \n" + "\uD83D\uDD34 \uD83D\uDFE1 ⚫ ⚫ ⚫ ⚫ ⚫ \n\r\n"; - modele.p4.Plateau plateau = new modele.p4.Plateau(); - plateau.reset(); + PlateauP4 plateauP4 = new PlateauP4(); + plateauP4.reset(); try{ - plateau.placerJeton((byte) 0, (byte) 1); - plateau.placerJeton((byte) 1, (byte) 2); + plateauP4.placerJeton((byte) 0, (byte) 1); + plateauP4.placerJeton((byte) 1, (byte) 2); } catch (ColonnePleine | FormatReponseInvalide e) { fail("Erreur placerJeton"); } Ihm ihm = new Ihm(); //Test le fonctionnement normal - ihm.afficherPlateau(plateau.toString()); + ihm.afficherPlateau(plateauP4.toString()); assertEquals(reponseAttendu,out.toString()); //Rétablissement des valeurs par défault diff --git a/src/controleur/Controleur.java b/src/controleur/Controleur.java new file mode 100644 index 0000000..72ad33f --- /dev/null +++ b/src/controleur/Controleur.java @@ -0,0 +1,109 @@ +package controleur; + +import exception.ColonnePleine; +import exception.FormatReponseInvalide; +import exception.NombreBatonnetsInvalide; +import exception.NumeroTasInvalide; +import modele.Joueur; +import modele.Plateau; +import vue.Ihm; + +public abstract class Controleur { + protected int numeroJoueurCourant; + protected int nombrePartie = 0; + protected Joueur[] lesJoueurs; + protected Plateau plateau; + protected Ihm ihm; + + protected void initJoueur() { + int nbJoueur = 2; + lesJoueurs = new Joueur[2]; + for (int i = 0; i < nbJoueur; i++) { + lesJoueurs[i] = new Joueur(ihm.demanderNomJoueur(i+1)); + } + } + + protected void toursDeJeu() { + nombrePartie+=1; + numeroJoueurCourant=1; + plateau.reset(); + //plateau.steOption(); + while (!plateau.verifierFin()){ + tourSuivant(); + boolean estCoupCorrect = false; + while (!estCoupCorrect){ + try{ + estCoupCorrect = true; + ihm.afficherPlateau(plateau.toString()); + getCoup(); + } catch (NombreBatonnetsInvalide | NumeroTasInvalide | ColonnePleine | FormatReponseInvalide exception){ + estCoupCorrect = false; + ihm.afficherErreur(exception.getMessage()); + } + } + } + + victoire(); + + if(ihm.demanderJouerEncore()){ + toursDeJeu(); + } else { + finPartie(); + } + } + + /** + *

    Passe au joueur suivant dans l'ordre des joueurs.

    + *

    Actualise le numéro du joueur courant en faisant une rotation circulaire entre les joueurs.

    + */ + protected void tourSuivant() { + this.numeroJoueurCourant = (numeroJoueurCourant + 1) % 2; + } + + /** + * Permet de verifier a la fin de la partie quel joueur a gagné la partie et le fait afficher par l'IHM. + */ + protected void finPartie() { + int comparaison = lesJoueurs[0].compareTo(lesJoueurs[1]); + if (comparaison == 0) { + ihm.afficherVictoire("ex Aequo", lesJoueurs[0].getNbVictoires(), nombrePartie, true); + } else if (comparaison > 0) { + ihm.afficherVictoire(lesJoueurs[0].getNom(), lesJoueurs[0].getNbVictoires(), nombrePartie, false); + } else { + ihm.afficherVictoire(lesJoueurs[1].getNom(), lesJoueurs[1].getNbVictoires(), nombrePartie, false); + } + } + + /** + *

    Renvoie le numéro du joueur actuellement en cours.

    + *

    Pas utilisée pour l'instant, pourra être retirée si besoin

    + * + * @return Le numéro du joueur courant. + */ + protected int getNumeroJoueurCourant() { + return numeroJoueurCourant; + } + + /** + * Renvoie l'objet Joueur correspondant au joueur actuellement en cours. + * + * @return Le joueur courant. + */ + protected Joueur getJoueurCourant() { + return lesJoueurs[numeroJoueurCourant]; + } + + /** + * Renvoie le nom du joueur actuellement en cours. + * + * @return Le nom du joueur courant. + */ + protected String getNomJoueurCourant() { + return lesJoueurs[numeroJoueurCourant].getNom(); + } + + //Déclaration des méthodes abstraite + protected abstract void getCoup() throws FormatReponseInvalide, NombreBatonnetsInvalide, NumeroTasInvalide, ColonnePleine; + protected abstract void victoire(); + public abstract void jouer(); +} diff --git a/src/controleur/ControleurJeuNim.java b/src/controleur/ControleurJeuNim.java index 285750a..487ee03 100644 --- a/src/controleur/ControleurJeuNim.java +++ b/src/controleur/ControleurJeuNim.java @@ -5,29 +5,13 @@ import exception.NombreTasInvalides; import exception.NumeroTasInvalide; import modele.Joueur; -import modele.nim.Plateau; +import modele.PlateauNim; import vue.Ihm; /** * Classe du contrôleur du jeu de Nim */ -public class ControleurJeuNim { - /** Numéro du joueur courant, x ∈ [0 ; 1]**/ - private int numeroJoueurCourant; - - /** Nombre de parties jouées, incrémentée dans commencerPartie()*/ - private int nbParties = 0; - - /** Array contenant les objets Joueur représentant les joueurs*/ - private Joueur[] lesJoueurs; - - /** Objet Plateau représentant une collection de tas*/ - private Plateau plateau; - - /** - * Objet Interface Humain Machine chargé de récupérer les commandes du joueur et d'afficher l'état de la partie - */ - private final Ihm ihm; +public class ControleurJeuNim extends Controleur{ /** * Initialise un nouveau contrôleur de jeu Nim avec une interface utilisateur spécifiée. @@ -41,7 +25,7 @@ public ControleurJeuNim (Ihm ihm) { /** *

    Initialise une nouvelle partie en demandant le nombre de tas.

    - *

    Les noms des joueurs, et en créant le plateau de jeu.

    + *

    Les noms des joueurs, et en créant le plateauNim de jeu.

    */ public void jouer() { boolean isNbTasValide = false; @@ -60,126 +44,20 @@ public void jouer() { } } - this.plateau = new Plateau(nombreTas); - - for (int i = 0; i < 2; i++) { - String nomJoueur = ""; + this.plateau = new PlateauNim(nombreTas); - // Permet de s'assurer que l'on ne rentre pas un nom vide. - boolean nomValide = false; - while (!nomValide) { - nomJoueur = ihm.demanderNomJoueur(i+1); - if (nomJoueur.isBlank()) { - ihm.afficherErreur("Veuillez choisir un nom qui ne soit pas composé exclusivement de caractères invisibles (Espaces, Tabulations ...)."); - } else { - nomValide = true; - } - } - this.lesJoueurs[i] = new Joueur(nomJoueur); - } - - - commencerPartie(); - } - - /** - *

    Incrémente le nombre de parties, reset / crée les tas.

    - *

    Puis lance la séquence de tours de jeu.

    - */ - private void commencerPartie() { - numeroJoueurCourant = 1; - - // Incrémentation du nombre de parties jouées - this.nbParties ++; - - // Crée / reset le plateau - plateau.reset(); - - // Lance la partie + initJoueur(); toursDeJeu(); } - /** - *

    Facilite le déroulement complet d'une série de tours de jeu jusqu'à la fin.

    - *

    À chaque tour, demande le coup au joueur courant, met à jour le plateau, et gère les erreurs.

    - *

    Après la fin du jeu, incrémente les victoires du joueur courant, affiche le résultat, - * puis demande si les joueurs veulent jouer encore.

    - *

    En cas de réponse affirmative, démarre une nouvelle partie ; sinon, termine le programme.

    - */ - private void toursDeJeu() { - while (!plateau.verifierFin()) { - tourSuivant(); - boolean estCoupCorrect = false; - while (!estCoupCorrect) { - try { - estCoupCorrect = true; - ihm.afficherPlateau(plateau.toString()); - int[] candidate = ihm.demanderCoupNim(getNomJoueurCourant()); - plateau.retirerBatonnets(candidate[0], candidate[1]); - } catch (NombreBatonnetsInvalide | NumeroTasInvalide | FormatReponseInvalide exception) { - estCoupCorrect = false; - ihm.afficherErreur(exception.getMessage()); - } - } - } - getJoueurCourant().incrementVictoires(); - ihm.afficherVictoire(getNomJoueurCourant(), getJoueurCourant().getNbVictoires(), nbParties, false); - - if (ihm.demanderJouerEncore()) { - commencerPartie(); - } else { - finPartie(); - } - } - - /** - *

    Passe au joueur suivant dans l'ordre des joueurs.

    - *

    Actualise le numéro du joueur courant en faisant une rotation circulaire entre les joueurs.

    - */ - private void tourSuivant() { - this.numeroJoueurCourant = (numeroJoueurCourant + 1) % 2; + protected void getCoup() throws FormatReponseInvalide, NombreBatonnetsInvalide, NumeroTasInvalide { + int[] candidate = ihm.demanderCoupNim(getNomJoueurCourant()); + plateau.retirerBatonnets(candidate[0], candidate[1]); } - /** - * Permet de verifier a la fin de la partie quel joueur a gagné la partie et le fait afficher par l'IHM. - */ - private void finPartie() { - int comparaison = lesJoueurs[0].compareTo(lesJoueurs[1]); - if (comparaison == 0) { - ihm.afficherVictoire("ex Aequo", lesJoueurs[0].getNbVictoires(), nbParties, true); - } else if (comparaison > 0) { - ihm.afficherVictoire(lesJoueurs[0].getNom(), lesJoueurs[0].getNbVictoires(), nbParties, false); - } else { - ihm.afficherVictoire(lesJoueurs[1].getNom(), lesJoueurs[1].getNbVictoires(), nbParties, false); - } - } - - - /** - *

    Renvoie le numéro du joueur actuellement en cours.

    - *

    Pas utilisée pour l'instant, pourra être retirée si besoin

    - * - * @return Le numéro du joueur courant. - */ - public int getNumeroJoueurCourant() { - return numeroJoueurCourant; - } - - /** - * Renvoie l'objet Joueur correspondant au joueur actuellement en cours. - * - * @return Le joueur courant. - */ - public Joueur getJoueurCourant() { - return lesJoueurs[numeroJoueurCourant]; + protected void victoire(){ + getJoueurCourant().incrementVictoires(); + ihm.afficherVictoire(getNomJoueurCourant(), getJoueurCourant().getNbVictoires(), nombrePartie, false); } - /** - * Renvoie le nom du joueur actuellement en cours. - * - * @return Le nom du joueur courant. - */ - public String getNomJoueurCourant() { - return lesJoueurs[numeroJoueurCourant].getNom(); - } } diff --git a/src/controleur/ControleurP4.java b/src/controleur/ControleurP4.java index fd96a44..9dd31bf 100644 --- a/src/controleur/ControleurP4.java +++ b/src/controleur/ControleurP4.java @@ -3,29 +3,13 @@ import exception.ColonnePleine; import exception.FormatReponseInvalide; import modele.Joueur; -import modele.p4.Plateau; +import modele.PlateauP4; import vue.Ihm; /** * Classe du contrôleur du jeu de puissance 4 */ -public class ControleurP4 { - /** Numéro du joueur courant, x ∈ [0 ; 1]**/ - private int numeroJoueurCourant; - - /** Nombre de parties jouées, incrémentée dans commencerPartie()*/ - private int nbParties = 0; - - /** Array contenant les objets Joueur représentant les joueurs*/ - private Joueur[] lesJoueurs; - - /** Objet Plateau représentant la grille de puissance 4*/ - private Plateau plateau; - - /** - * Objet Interface Humain Machine chargé de récupérer les commandes du joueur et d'afficher l'état de la partie - */ - private final Ihm ihm; +public class ControleurP4 extends Controleur{ /** * Initialise un nouveau contrôleur de jeu de puissance 4 avec une interface utilisateur spécifiée. @@ -35,138 +19,31 @@ public class ControleurP4 { public ControleurP4(Ihm ihm) { this.ihm = ihm; this.lesJoueurs = new Joueur[2]; - this.plateau = new Plateau(); + this.plateau = new PlateauP4(); } /** * Initialise une nouvelle partie en demandant les noms des joueurs, - * et en créant le plateau de jeu. + * et en créant le plateauP4 de jeu. */ public void jouer() { - for (int i = 0; i < 2; i++) { - String nomJoueur = ""; - - // Permet de s'assurer que l'on ne rentre pas un nom vide. - boolean nomValide = false; - while (!nomValide) { - nomJoueur = ihm.demanderNomJoueur(i+1); - if (nomJoueur.isBlank()) { - ihm.afficherErreur("Veuillez choisir un nom qui ne soit pas composé exclusivement de caractères invisibles (Espaces, Tabulations ...)."); - } else { - nomValide = true; - } - } - this.lesJoueurs[i] = new Joueur(nomJoueur); - } - commencerPartie(); - } - - /** - *

    Incrémente le nombre de parties, reset / crée le plateau.

    - *

    Puis lance la séquence de tours de jeu.

    - */ - private void commencerPartie() { - numeroJoueurCourant = 1; - - // Incrémentation du nombre de parties jouées - this.nbParties ++; - - // Crée / reset le plateau - plateau.reset(); - - // Lance la partie + initJoueur(); + plateau = new PlateauP4(); toursDeJeu(); } + protected void getCoup() throws FormatReponseInvalide, ColonnePleine { + byte candidate = ihm.demanderCoupP4(getNomJoueurCourant()); + plateau.placerJeton((byte) (candidate-1), (byte) (numeroJoueurCourant+1)); + } - /** - *

    Facilite le déroulement complet d'une série de tours de jeu jusqu'à la fin.

    - *

    À chaque tour, demande le coup au joueur courant, met à jour le plateau, et gère les erreurs.

    - *

    Après la fin du jeu, incrémente les victoires du joueur courant, affiche le résultat, - * puis demande si les joueurs veulent jouer encore.

    - *

    En cas de réponse affirmative, démarre une nouvelle partie ; sinon, termine le programme.

    - */ - private void toursDeJeu() { - while (!plateau.verifierFin()) { - tourSuivant(); - boolean estCoupCorrect = false; - while (!estCoupCorrect) { - try { - estCoupCorrect = true; - ihm.afficherPlateau(plateau.toString()); - byte candidate = ihm.demanderCoupP4(getNomJoueurCourant()); - plateau.placerJeton((byte) (candidate-1), (byte) (numeroJoueurCourant+1)); - } catch (ColonnePleine | FormatReponseInvalide exception) { - estCoupCorrect = false; - ihm.afficherErreur(exception.getMessage()); - } - } - } - + protected void victoire(){ if (!plateau.verifierVictoire()){ - ihm.afficherVictoire(getNomJoueurCourant(), getJoueurCourant().getNbVictoires(), nbParties, true); - }else { + ihm.afficherVictoire(getNomJoueurCourant(), getJoueurCourant().getNbVictoires(), nombrePartie, true); + } else { getJoueurCourant().incrementVictoires(); - ihm.afficherVictoire(getNomJoueurCourant(), getJoueurCourant().getNbVictoires(), nbParties, false); + ihm.afficherVictoire(getNomJoueurCourant(), getJoueurCourant().getNbVictoires(), nombrePartie, false); } ihm.afficherPlateau(plateau.toString()); - - - if (ihm.demanderJouerEncore()) { - commencerPartie(); - } else { - finPartie(); - } - } - - /** - *

    Passe au joueur suivant dans l'ordre des joueurs.

    - *

    Actualise le numéro du joueur courant en faisant une rotation circulaire entre les joueurs.

    - */ - private void tourSuivant() { - this.numeroJoueurCourant = (numeroJoueurCourant + 1) % 2; - } - - - /** - * Permet de verifier a la fin de la partie quel joueur a gagné la partie et le fait afficher par l'IHM. - */ - private void finPartie() { - int comparaison = lesJoueurs[0].compareTo(lesJoueurs[1]); - if (comparaison == 0) { - ihm.afficherVictoire("ex Aequo", lesJoueurs[0].getNbVictoires(), nbParties, true); - } else if (comparaison > 0) { - ihm.afficherVictoire(lesJoueurs[0].getNom(), lesJoueurs[0].getNbVictoires(), nbParties, false); - } else { - ihm.afficherVictoire(lesJoueurs[1].getNom(), lesJoueurs[1].getNbVictoires(), nbParties, false); - } - } - - /** - *

    Renvoie le numéro du joueur actuellement en cours.

    - *

    Pas utilisée pour l'instant, pourra être retirée si besoin

    - * - * @return Le numéro du joueur courant. - */ - public int getNumeroJoueurCourant() { - return numeroJoueurCourant; - } - - /** - * Renvoie l'objet Joueur correspondant au joueur actuellement en cours. - * - * @return Le joueur courant. - */ - public Joueur getJoueurCourant() { - return lesJoueurs[numeroJoueurCourant]; - } - - /** - * Renvoie le nom du joueur actuellement en cours. - * - * @return Le nom du joueur courant. - */ - public String getNomJoueurCourant() { - return lesJoueurs[numeroJoueurCourant].getNom(); } } diff --git a/src/exception/JeuInvalideException.java b/src/exception/JeuInvalideException.java new file mode 100644 index 0000000..834204a --- /dev/null +++ b/src/exception/JeuInvalideException.java @@ -0,0 +1,13 @@ +package exception; +/** + * Exception levée lorsqu'un joueur souhaite jouer à un jeu inexistant + */ +public class JeuInvalideException extends Exception{ + /** + * Constructeur de l'exception JeuInvalideException + * @param message message de l'exception + */ + public JeuInvalideException(String message) { + super(message); + } +} diff --git a/src/main/main.java b/src/main/main.java new file mode 100644 index 0000000..6daef9b --- /dev/null +++ b/src/main/main.java @@ -0,0 +1,20 @@ +package main; + +import controleur.Controleur; +import controleur.ControleurJeuNim; +import controleur.ControleurP4; +import vue.Ihm; + + +public class main { + public static void main(String[] args) { + Ihm ihm = new Ihm(); + Controleur controleur; + if (ihm.demanderJeu()){ + controleur = new ControleurJeuNim(ihm); + } else { + controleur = new ControleurP4(ihm); + } + controleur.jouer(); + } +} diff --git a/src/modele/Plateau.java b/src/modele/Plateau.java new file mode 100644 index 0000000..9efc5b8 --- /dev/null +++ b/src/modele/Plateau.java @@ -0,0 +1,14 @@ +package modele; + +import exception.ColonnePleine; +import exception.FormatReponseInvalide; +import exception.NombreBatonnetsInvalide; +import exception.NumeroTasInvalide; + +public abstract class Plateau { + public abstract void reset(); + public abstract boolean verifierFin(); + public abstract void placerJeton(byte colonne, byte joueur) throws ColonnePleine, FormatReponseInvalide; + public abstract boolean verifierVictoire(); + public abstract void retirerBatonnets(int m, int n) throws NombreBatonnetsInvalide, NumeroTasInvalide; +} diff --git a/src/modele/nim/Plateau.java b/src/modele/PlateauNim.java similarity index 85% rename from src/modele/nim/Plateau.java rename to src/modele/PlateauNim.java index 21d1d5f..8afb83f 100644 --- a/src/modele/nim/Plateau.java +++ b/src/modele/PlateauNim.java @@ -1,12 +1,14 @@ -package modele.nim; +package modele; +import exception.ColonnePleine; +import exception.FormatReponseInvalide; import exception.NombreBatonnetsInvalide; import exception.NumeroTasInvalide; /** * Classe représentant un plateau de jeu de Nim */ -public class Plateau { +public class PlateauNim extends Plateau { /** * Le tableau contenant les tas */ @@ -17,11 +19,11 @@ public class Plateau { private int nombreTas; /** - * Permet de construire un nouveau Plateau, en fonction d'un nombre de tas. + * Permet de construire un nouveau PlateauNim, en fonction d'un nombre de tas. * * @param nombreTas : nombre de tas à créer dans le plateau */ - public Plateau(int nombreTas) { + public PlateauNim(int nombreTas) { this.lesTas = new Tas[nombreTas]; this.nombreTas = nombreTas; } @@ -101,4 +103,12 @@ public String toString() { } return s; } + + public void placerJeton(byte colonne, byte joueur) throws ColonnePleine, FormatReponseInvalide{ + throw new UnsupportedOperationException("Méthode non implémentée"); + } + + public boolean verifierVictoire(){ + throw new UnsupportedOperationException("Méthode non implémentée"); + } } \ No newline at end of file diff --git a/src/modele/p4/Plateau.java b/src/modele/PlateauP4.java similarity index 92% rename from src/modele/p4/Plateau.java rename to src/modele/PlateauP4.java index 1731814..08451a1 100644 --- a/src/modele/p4/Plateau.java +++ b/src/modele/PlateauP4.java @@ -1,12 +1,14 @@ -package modele.p4; +package modele; import exception.ColonnePleine; import exception.FormatReponseInvalide; +import exception.NombreBatonnetsInvalide; +import exception.NumeroTasInvalide; /** * Classe représentant un plateau de jeu de puissance 4 */ -public class Plateau { +public class PlateauP4 extends Plateau { /** * Le tableau représentant le plateau de puissance 4 */ @@ -16,9 +18,9 @@ public class Plateau { */ private byte[] dernierCoup = new byte[2]; /** - * Permet de construire un nouveau Plateau. + * Permet de construire un nouveau PlateauNim. */ - public Plateau() {} + public PlateauP4() {} /** *

    Remplit le plateau en créant le plateau

    @@ -108,7 +110,6 @@ public boolean verifierVictoire() { return false; } - /** * Permet de vérifier si le plateau est plein * @return true si le plateau est plein, sinon false @@ -140,10 +141,9 @@ public byte[][] getPlateau(){ *

    Parcours la colonne à partir du bas et place le jeton dès qu'une case est vide (0)

    * @param colonne L’indice de la colonne où le jeton doit être placé [0,...,6] * @param joueur Le numéro du joueur [1,2] - * @throws ColonnePleine Si la colonne dans laquelle le joueur veut placer le jeton est pleine * @throws FormatReponseInvalide Si le numéro de colonne demandé est inexistant */ - public void placerJeton(byte colonne, byte joueur) throws ColonnePleine, FormatReponseInvalide { + public void placerJeton(byte colonne, byte joueur) throws FormatReponseInvalide, ColonnePleine { if (colonne<0 || colonne>6){ throw new FormatReponseInvalide("Veuillez entrer un entier compris entre 1 et 7"); } @@ -186,4 +186,8 @@ public String toString() { } return string; } + + public void retirerBatonnets(int m, int n) throws NombreBatonnetsInvalide, NumeroTasInvalide { + throw new UnsupportedOperationException("Méthode non implémentée"); + } } \ No newline at end of file diff --git a/src/modele/nim/Tas.java b/src/modele/Tas.java similarity index 98% rename from src/modele/nim/Tas.java rename to src/modele/Tas.java index 78e8a2c..b84add5 100644 --- a/src/modele/nim/Tas.java +++ b/src/modele/Tas.java @@ -1,4 +1,4 @@ -package modele.nim; +package modele; import exception.NombreBatonnetsInvalide; diff --git a/src/modele/nim/package-info.java b/src/modele/nim/package-info.java deleted file mode 100644 index 754c3d6..0000000 --- a/src/modele/nim/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Package contenant les Classe du modèle du jeu de Nim - */ -package modele.nim; \ No newline at end of file diff --git a/src/modele/p4/package-info.java b/src/modele/p4/package-info.java deleted file mode 100644 index c95bd2c..0000000 --- a/src/modele/p4/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Package contenant les Classe du modèle du jeu de puissance 4 - */ -package modele.p4; \ No newline at end of file diff --git a/src/vue/Ihm.java b/src/vue/Ihm.java index 3f5344a..66b3bfc 100644 --- a/src/vue/Ihm.java +++ b/src/vue/Ihm.java @@ -11,7 +11,9 @@ * La classe Ihm (Interface Humain Machine) représente l'interface utilisateur du jeu. */ public class Ihm { - /** Le scanner qui permet de récupérer les inputs de l'utilisateur*/ + /** + * Le scanner qui permet de récupérer les inputs de l'utilisateur + */ private Scanner scanner; /** @@ -97,7 +99,7 @@ public int[] demanderCoupNim(String nomJoueur) throws FormatReponseInvalide { public boolean demanderJouerEncore() { // Le pattern s'assure que la ligne contient uniquement "y" ou "n". Pattern pattern = Pattern.compile("^[y|n]$"); //Permet de créer le regex. - while (true){ + while (true) { System.out.println("Voulez-vous rejouer une partie ? (y/n)"); if (scanner.hasNextLine()) { String line = scanner.nextLine(); @@ -159,9 +161,9 @@ public void afficherErreur(String message) { */ public byte demanderCoupP4(String nomJoueur) throws FormatReponseInvalide { System.out.println("Dans quelle colonne voulez-vous jouer " + nomJoueur + " ?"); - if (scanner.hasNextByte()){ + if (scanner.hasNextByte()) { byte candidate = scanner.nextByte(); - if (scanner.hasNextLine()){ + if (scanner.hasNextLine()) { scanner.nextLine(); } return candidate; @@ -170,4 +172,20 @@ public byte demanderCoupP4(String nomJoueur) throws FormatReponseInvalide { throw new FormatReponseInvalide("Veuillez entrer un entier compris entre 1 et 7"); } + public boolean demanderJeu() { + // Le pattern s'assure que la ligne contient uniquement "y" ou "n". + Pattern pattern = Pattern.compile("^(p4|nim)$"); //Permet de créer le regex. + while (true) { + System.out.println("Quel jeu voulez vous jouer ? Puissance 4 (p4) ou Nim (nim)"); + if (scanner.hasNextLine()) { + String line = scanner.nextLine(); + Matcher matcher = pattern.matcher(line); // Permet de créer un objet auquel on demande si la String correspond au regex. + // On vérifie la réponse et retourne true si c'est "y" et false si c'est "n". + if (matcher.find()) { + return line.equals("nim"); + } + } + System.out.println("\n\n⚠ Vous avez répondu avec autre chose que `y` ou `n`."); + } + } }