From 4f09cb9e7c3c0ed633936c1b5aa482b67cf97c52 Mon Sep 17 00:00:00 2001
From: "michael.divia" <michael.divia@etu.hesge.ch>
Date: Mon, 4 Dec 2023 18:27:00 +0100
Subject: [PATCH] Part 2 55%

---
 Partie_2/src/main/java/ch/hepia/App.java      |  77 ++++-
 Partie_2/src/main/java/ch/hepia/Carte.java    |  16 +-
 .../src/main/java/ch/hepia/GameManager.java   |  79 +++++
 Partie_2/src/main/java/ch/hepia/Hand.java     |  52 ++-
 .../src/main/java/ch/hepia/JeudeCarte.java    |  17 +
 Partie_2/src/main/java/ch/hepia/Joueur.java   | 323 ++++++++++++++++++
 Partie_2/target/classes/ch/hepia/App.class    | Bin 718 -> 2275 bytes
 .../target/classes/ch/hepia/COULEUR.class     | Bin 1075 -> 1044 bytes
 Partie_2/target/classes/ch/hepia/Carte.class  | Bin 3224 -> 2722 bytes
 .../target/classes/ch/hepia/GameManager.class | Bin 0 -> 3053 bytes
 Partie_2/target/classes/ch/hepia/Hand$1.class | Bin 1125 -> 1128 bytes
 Partie_2/target/classes/ch/hepia/Hand.class   | Bin 3592 -> 4280 bytes
 .../classes/ch/hepia/JeudeCarte$1.class       | Bin 1157 -> 1160 bytes
 .../target/classes/ch/hepia/JeudeCarte.class  | Bin 2471 -> 3159 bytes
 Partie_2/target/classes/ch/hepia/Joueur.class | Bin 0 -> 390 bytes
 .../classes/ch/hepia/JoueurCroupier.class     | Bin 0 -> 1857 bytes
 .../classes/ch/hepia/JoueurHumain.class       | Bin 0 -> 3197 bytes
 .../classes/ch/hepia/JoueurOrdinateur.class   | Bin 0 -> 3160 bytes
 Partie_2/target/classes/ch/hepia/Paquet.class | Bin 902 -> 900 bytes
 .../compile/default-compile/createdFiles.lst  |   6 +-
 .../compile/default-compile/inputFiles.lst    |   2 +
 .../test-classes/ch/hepia/CarteTest.class     | Bin 1792 -> 1821 bytes
 22 files changed, 544 insertions(+), 28 deletions(-)
 create mode 100644 Partie_2/src/main/java/ch/hepia/GameManager.java
 create mode 100644 Partie_2/src/main/java/ch/hepia/Joueur.java
 create mode 100644 Partie_2/target/classes/ch/hepia/GameManager.class
 create mode 100644 Partie_2/target/classes/ch/hepia/Joueur.class
 create mode 100644 Partie_2/target/classes/ch/hepia/JoueurCroupier.class
 create mode 100644 Partie_2/target/classes/ch/hepia/JoueurHumain.class
 create mode 100644 Partie_2/target/classes/ch/hepia/JoueurOrdinateur.class

diff --git a/Partie_2/src/main/java/ch/hepia/App.java b/Partie_2/src/main/java/ch/hepia/App.java
index 342c31d..8516d85 100644
--- a/Partie_2/src/main/java/ch/hepia/App.java
+++ b/Partie_2/src/main/java/ch/hepia/App.java
@@ -1,20 +1,83 @@
 package ch.hepia;
 
+import java.util.Scanner;
+
 public class App {
 
-    public static void main(String[] args) {
+    public static final Scanner in = new Scanner(System.in);
+    public static final String ANSI_RESET = "\u001B[0m";
+    public static final String ANSI_BLACK = "\u001B[30m";
+    public static final String ANSI_RED = "\u001B[31m";
+    public static final String ANSI_GREEN = "\u001B[32m";
+    public static final String ANSI_YELLOW = "\u001B[33m";
+    public static final String ANSI_BLUE = "\u001B[34m";
+    public static final String ANSI_PURPLE = "\u001B[35m";
+    public static final String ANSI_CYAN = "\u001B[36m";
+    public static final String ANSI_WHITE = "\u001B[37m";
+
+    public static void BlackJack() {
+
+        System.out.print("\033[H\033[2J");
+        System.out.flush();
+
+        System.out.println("*~-~* " + App.ANSI_RED + "BlackJack" + App.ANSI_RESET + " *~-~*\n");
+
+        int numPlayers;
+        int startMoney;
+
+        while (true) {
+            System.out.print("How many players ? ");
+
+            while (!App.in.hasNextInt()) {
+                System.out.println(
+                        App.ANSI_YELLOW + "Please enter a valid number for the number of players." + App.ANSI_RESET);
+                System.out.print("How many players ? ");
+                App.in.next();
+            }
+
+            numPlayers = App.in.nextInt();
 
-        Paquet BlackJack = new Paquet(6, 52);
+            if (numPlayers >= 1 && numPlayers <= 7) {
+                System.out.print("");
+                break;
+            } else {
+                System.out.println(
+                        App.ANSI_YELLOW + "Please enter a number of players between 1 and 7." + App.ANSI_RESET);
+            }
+        }
 
-        BlackJack.getPaquet().get(0).ShowPaquet();
+        while (true) {
+            System.out.print("How much money do you start with ? ");
 
-        BlackJack.getPaquet().get(1).ShowPaquet();
+            while (!App.in.hasNextInt()) {
+                System.out.println(App.ANSI_YELLOW + "Please enter a valid number for your Money." + App.ANSI_RESET);
+                System.out.print("How much money do you start with ? ");
+                App.in.next();
+            }
 
-        BlackJack.getPaquet().get(2).ShowPaquet();
+            startMoney = App.in.nextInt();
+
+            if (startMoney >= 10) {
+                System.out.print("");
+                break;
+            } else {
+                System.out.println(App.ANSI_YELLOW + "Please enter an amount above 10." + App.ANSI_RESET);
+            }
+        }
+
+        GameManager BlackJack = new GameManager(numPlayers, startMoney);
+
+        BlackJack.StartTurn();
+
+        BlackJack.DisplayTurn();
+
+        App.in.close();
+    }
+
+    public static void main(String[] args) {
 
-        BlackJack.getPaquet().get(3).ShowPaquet();
+        BlackJack();
 
-        BlackJack.getPaquet().get(4).ShowPaquet();
     }
 
 }
diff --git a/Partie_2/src/main/java/ch/hepia/Carte.java b/Partie_2/src/main/java/ch/hepia/Carte.java
index 1afe323..6282220 100644
--- a/Partie_2/src/main/java/ch/hepia/Carte.java
+++ b/Partie_2/src/main/java/ch/hepia/Carte.java
@@ -11,7 +11,7 @@ public class Carte {
 
     final private COULEUR couleur;
     final private int rang;
-    private int force;
+    final private int force;
 
     private static final int NOMBRE_DE_RANGS = 13;
 
@@ -31,18 +31,12 @@ public class Carte {
         this.couleur = couleur;
         this.rang = rang;
 
-    }
-
-    public Carte(COULEUR couleur, int rang, int force) {
-
-        if (rang < 0 || rang > NOMBRE_DE_RANGS) {
-            throw new IllegalArgumentException("Carte invalide : rang incorrect");
+        if (rang <= 10) {
+            this.force = rang;
+        } else {
+            this.force = 10;
         }
 
-        this.couleur = couleur;
-        this.rang = rang;
-        this.force = force;
-
     }
 
     public COULEUR getCouleur() {
diff --git a/Partie_2/src/main/java/ch/hepia/GameManager.java b/Partie_2/src/main/java/ch/hepia/GameManager.java
new file mode 100644
index 0000000..ada0f80
--- /dev/null
+++ b/Partie_2/src/main/java/ch/hepia/GameManager.java
@@ -0,0 +1,79 @@
+package ch.hepia;
+
+import java.util.ArrayList;
+import java.util.Scanner;
+
+public class GameManager {
+
+    private JeudeCarte Deck;
+    private ArrayList<Joueur> Players;
+    private JoueurCroupier Dealer;
+
+    public GameManager(int nbPlayer, int startMoney) {
+
+        this.Deck = new JeudeCarte(new Paquet(6, 52));
+
+        this.Players = new ArrayList<>();
+
+        this.Players.add(new JoueurHumain(Deck, startMoney));
+
+        if (nbPlayer > 1) {
+            for (int x = 1; x < nbPlayer; x++) {
+                this.Players.add(new JoueurOrdinateur(Deck, startMoney));
+            }
+        }
+
+        this.Dealer = new JoueurCroupier(Deck);
+    }
+
+    public void DisplayTurn() {
+
+        System.out.print("\033[H\033[2J");
+        System.out.flush();
+
+        System.out.println("*~-~* " + App.ANSI_RED + "BlackJack" + App.ANSI_RESET + " *~-~*\n");
+
+        System.out.println("Dealer Score : " + App.ANSI_PURPLE + this.Dealer.GetForce(0) + App.ANSI_RESET);
+        this.Dealer.ShowHands();
+
+        System.out.println("\nMoney : " + App.ANSI_BLUE + this.Players.get(0).GetMoney() + App.ANSI_RESET + " // Bet : "
+                + App.ANSI_BLUE + this.Players.get(0).GetBet(0) + App.ANSI_RESET);
+        System.out.println("Player Score : " + App.ANSI_PURPLE + this.Players.get(0).GetForce(0) + App.ANSI_RESET);
+        this.Players.get(0).ShowHands();
+
+    }
+
+    public void StartTurn() {
+
+        System.out.print("\033[H\033[2J");
+        System.out.flush();
+
+        System.out.println("*~-~* " + App.ANSI_RED + "BlackJack" + App.ANSI_RESET + " *~-~*\n");
+
+        double bet;
+
+        System.out.println("Money : " + App.ANSI_BLUE + this.Players.get(0).GetMoney() + App.ANSI_RESET);
+
+        while (true) {
+
+            System.out.print("How much do you want to bet ? ");
+
+            while (!App.in.hasNextDouble()) {
+                System.out.println(App.ANSI_YELLOW + "Please enter a valid number to bet." + App.ANSI_RESET);
+                System.out.print("How much do you want to bet ?");
+                App.in.next();
+            }
+
+            bet = App.in.nextDouble();
+
+            if (bet <= this.Players.get(0).GetMoney()) {
+                break;
+            } else {
+                System.out.println(App.ANSI_YELLOW + "You don't have enough money." + App.ANSI_RESET);
+            }
+        }
+
+        Players.get(0).SetBet(bet, 0);
+    }
+
+}
diff --git a/Partie_2/src/main/java/ch/hepia/Hand.java b/Partie_2/src/main/java/ch/hepia/Hand.java
index 001bdb5..8d9c55a 100644
--- a/Partie_2/src/main/java/ch/hepia/Hand.java
+++ b/Partie_2/src/main/java/ch/hepia/Hand.java
@@ -3,11 +3,11 @@ package ch.hepia;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
-import java.util.List;
 
 public class Hand implements Comparable<Hand> {
 
-    private List<Carte> Hand;
+    private ArrayList<Carte> Hand;
+    private double Bet;
 
     public Hand(Carte... cartes) {
 
@@ -27,6 +27,22 @@ public class Hand implements Comparable<Hand> {
         this.DrawCardFromGame(game, nb);
     }
 
+    public void SetBet(double amount) {
+        if (amount < 0) {
+            throw new RuntimeException("Can't bet negative amout of money.");
+        }
+
+        this.Bet = amount;
+    }
+
+    public double GetBet() {
+        return this.Bet;
+    }
+
+    public Carte GetCarte(int cardNb) {
+        return this.Hand.get(cardNb);
+    }
+
     public void AddCardToHand(Carte... cartes) {
 
         for (Carte carte : cartes) {
@@ -83,13 +99,35 @@ public class Hand implements Comparable<Hand> {
 
     }
 
-    public void ShowHand() {
+    public int GetForce() {
 
-        this.SortHand();
+        int force = 0;
+        int as = 0;
 
-        System.out.println("-------- Main --------");
+        for (Carte carte : Hand) {
+            if (carte.getForce() == 1) {
+                as++;
+            }
+            force += carte.getForce();
+        }
+
+        while (force < 21 && as > 0) {
+            force += 10;
+
+            as--;
+
+            if (force > 21) {
+                force -= 10;
+                as = 0;
+            }
+        }
 
-        COULEUR currentcolor = null;
+        return force;
+    }
+
+    public void ShowHand() {
+
+        this.SortHand();
 
         for (Carte carte : Hand) {
 
@@ -97,7 +135,7 @@ public class Hand implements Comparable<Hand> {
 
         }
 
-        System.out.println("\n----------------------");
+        System.out.println("");
     }
 
     @Override
diff --git a/Partie_2/src/main/java/ch/hepia/JeudeCarte.java b/Partie_2/src/main/java/ch/hepia/JeudeCarte.java
index fa401b8..66d165a 100644
--- a/Partie_2/src/main/java/ch/hepia/JeudeCarte.java
+++ b/Partie_2/src/main/java/ch/hepia/JeudeCarte.java
@@ -56,6 +56,23 @@ public class JeudeCarte {
 
     }
 
+    public JeudeCarte(Paquet paquet) {
+
+        jeuDeCartes = new ArrayList<>();
+
+        List<JeudeCarte> paquets = paquet.getPaquet();
+
+        for (JeudeCarte deck : paquets) {
+            List<Carte> cartes = deck.getCartes();
+            jeuDeCartes.addAll(cartes);
+        }
+
+    }
+
+    public List<Carte> getCartes() {
+        return jeuDeCartes;
+    }
+
     public Carte GetTopCarteOfGame() {
 
         return this.jeuDeCartes.get(0);
diff --git a/Partie_2/src/main/java/ch/hepia/Joueur.java b/Partie_2/src/main/java/ch/hepia/Joueur.java
new file mode 100644
index 0000000..6ae23fc
--- /dev/null
+++ b/Partie_2/src/main/java/ch/hepia/Joueur.java
@@ -0,0 +1,323 @@
+package ch.hepia;
+
+import java.util.ArrayList;
+
+interface Joueur {
+
+    public void DefineStrategy();
+
+    public void AddMoney(double amount);
+
+    public void RemoveMoney(double amount);
+
+    public double GetMoney();
+
+    public void SetBet(double amount, int handNb);
+
+    public double GetBet(int handNb);
+
+    public void DrawCard(int handNb, JeudeCarte Jeu);
+
+    public void ShowHand(int handNb);
+
+    public void ShowHands();
+
+    public void Split(int handNb);
+
+    public int GetForce(int handNb);
+}
+
+class JoueurHumain implements Joueur {
+
+    private ArrayList<Hand> Hands;
+    private double Money;
+
+    public JoueurHumain(JeudeCarte Jeu, int Money) {
+        this.Hands = new ArrayList<>();
+
+        this.Hands.add(new Hand(Jeu, 2));
+
+        this.Hands.get(0).SetBet(0);
+
+        this.Money = Money;
+    }
+
+    public void DefineStrategy() {
+        // Le Joueur Humain n'a pas de strategie
+        throw new RuntimeException("Humain Player has no Strategy.");
+    }
+
+    public void AddMoney(double amount) {
+        if (amount < 0) {
+            throw new RuntimeException("Can't add negative amount of Money.");
+        } else if (this.Money > 0 && this.Money + amount < 0) {
+            throw new RuntimeException("Money Underflow.");
+        }
+
+        this.Money += amount;
+    }
+
+    public void RemoveMoney(double amount) {
+        if (amount < 0) {
+            throw new RuntimeException("Can't subtract negative amount of Money.");
+        } else if (this.Money < 0 && this.Money + amount > 0) {
+            throw new RuntimeException("Money Overflow.");
+        }
+
+        this.Money -= amount;
+    }
+
+    public double GetMoney() {
+        return this.Money;
+    }
+
+    public int GetForce(int handNb) {
+        return this.Hands.get(handNb).GetForce();
+    }
+
+    public void SetBet(double amount, int handNb) {
+        if (amount <= 0) {
+            throw new RuntimeException("Can't bet a negative or null amount.");
+        } else if (amount > this.Money) {
+            throw new RuntimeException("Can't bet more than the Money you have.");
+        }
+
+        if (handNb < 0 || handNb > Hands.size()) {
+            throw new RuntimeException("Hand number not valid.");
+        }
+
+        this.Money -= amount;
+        this.Hands.get(handNb).SetBet(amount);
+    }
+
+    public double GetBet(int handNb) {
+
+        if (handNb < 0 || handNb > Hands.size()) {
+            throw new RuntimeException("Hand number not valid.");
+        }
+
+        return this.Hands.get(handNb).GetBet();
+    }
+
+    public void DrawCard(int handNb, JeudeCarte Jeu) {
+
+        if (handNb < 0 || handNb > Hands.size()) {
+            throw new RuntimeException("Hand number not valid.");
+        }
+
+        this.Hands.get(handNb).DrawCardFromGame(Jeu);
+    }
+
+    public void ShowHands() {
+        for (Hand hand : this.Hands) {
+            hand.ShowHand();
+        }
+    }
+
+    public void ShowHand(int handNb) {
+
+        if (handNb < 0 || handNb > Hands.size()) {
+            throw new RuntimeException("Hand number not valid.");
+        }
+
+        this.Hands.get(handNb).ShowHand();
+    }
+
+    public void Split(int handNb) {
+
+        if (Hands.size() == 3) {
+            throw new RuntimeException("Max number of slipts.");
+        }
+
+        Carte card = this.Hands.get(handNb).GetCarte(handNb);
+
+        this.Hands.get(handNb).RemoveCardFromHand(card);
+
+        this.Hands.add(new Hand(card));
+    }
+}
+
+class JoueurOrdinateur implements Joueur {
+
+    private ArrayList<Hand> Hands;
+    private double Money;
+
+    public JoueurOrdinateur(JeudeCarte Jeu, int Money) {
+        this.Hands = new ArrayList<>();
+
+        Hands.add(new Hand(Jeu, 2));
+
+        Hands.get(0).SetBet(0);
+
+        this.Money = Money;
+    }
+
+    public void DefineStrategy() {
+        // TODO
+
+    }
+
+    public void AddMoney(double amount) {
+        if (amount <= 0) {
+            throw new RuntimeException("Can't add negative amount of Money.");
+        } else if (this.Money > 0 && this.Money + amount < 0) {
+            throw new RuntimeException("Money Underflow.");
+        }
+
+        this.Money += amount;
+    }
+
+    public void RemoveMoney(double amount) {
+        if (amount < 0) {
+            throw new RuntimeException("Can't subtract negative amount of Money.");
+        } else if (this.Money < 0 && this.Money - amount > 0) {
+            throw new RuntimeException("Money Overflow.");
+        }
+
+        this.Money -= amount;
+    }
+
+    public double GetMoney() {
+        return this.Money;
+    }
+
+    public int GetForce(int handNb) {
+        return this.Hands.get(handNb).GetForce();
+    }
+
+    public void SetBet(double amount, int handNb) {
+        if (amount <= 0) {
+            throw new RuntimeException("Can't bet a negative or null amount.");
+        } else if (amount > this.Money) {
+            throw new RuntimeException("Can't bet more than the Money you have.");
+        }
+
+        if (handNb < 0 || handNb > Hands.size()) {
+            throw new RuntimeException("Hand number not valid.");
+        }
+
+        this.Money -= amount;
+        this.Hands.get(handNb).SetBet(amount);
+    }
+
+    public double GetBet(int handNb) {
+
+        if (handNb < 0 || handNb > Hands.size()) {
+            throw new RuntimeException("Hand number not valid.");
+        }
+
+        return Hands.get(handNb).GetBet();
+    }
+
+    public void DrawCard(int handNb, JeudeCarte Jeu) {
+
+        if (handNb < 0 || handNb > Hands.size()) {
+            throw new RuntimeException("Hand number not valid.");
+        }
+
+        this.Hands.get(handNb).DrawCardFromGame(Jeu);
+    }
+
+    public void ShowHands() {
+        for (Hand hand : this.Hands) {
+            hand.ShowHand();
+        }
+    }
+
+    public void ShowHand(int handNb) {
+
+        if (handNb < 0 || handNb > Hands.size()) {
+            throw new RuntimeException("Hand number not valid.");
+        }
+
+        this.Hands.get(handNb).ShowHand();
+    }
+
+    public void Split(int handNb) {
+
+        if (Hands.size() == 3) {
+            throw new RuntimeException("Max number of slipts.");
+        }
+
+        Carte card = this.Hands.get(handNb).GetCarte(handNb);
+
+        this.Hands.get(handNb).RemoveCardFromHand(card);
+
+        this.Hands.add(new Hand(card));
+    }
+}
+
+class JoueurCroupier implements Joueur {
+
+    private Hand Hand;
+
+    public JoueurCroupier(JeudeCarte Jeu) {
+        this.Hand = new Hand(Jeu, 2);
+    }
+
+    public void DefineStrategy() {
+        // TODO
+
+    }
+
+    public void AddMoney(double amount) {
+        // La Banque n'a pas d'argent
+        throw new RuntimeException("Bank has no Money.");
+    }
+
+    public void RemoveMoney(double amount) {
+        // La Banque n'a pas d'argent
+        throw new RuntimeException("Bank has no Money.");
+    }
+
+    public double GetMoney() {
+        // La Banque n'a pas d'argent
+        throw new RuntimeException("Bank has no Money.");
+    }
+
+    public void SetBet(double amount, int handNb) {
+        // La Banque ne parie pas
+        throw new RuntimeException("Bank doesn't Bet.");
+    }
+
+    public double GetBet(int handNb) {
+        // La Banque ne parie pas
+        throw new RuntimeException("Bank doesn't Bet.");
+    }
+
+    public void DrawCard(int handNb, JeudeCarte Jeu) {
+
+        if (handNb != 0) {
+            throw new RuntimeException("Bank has only 1 hand.");
+        }
+
+        this.Hand.DrawCardFromGame(Jeu);
+    }
+
+    public void ShowHands() {
+        this.Hand.ShowHand();
+    }
+
+    public void ShowHand(int handNb) {
+
+        if (handNb != 0) {
+            throw new RuntimeException("Bank has only 1 hand.");
+        }
+
+        this.Hand.ShowHand();
+    }
+
+    public int GetForce(int handNb) {
+
+        if (handNb != 0) {
+            throw new RuntimeException("Bank has only 1 hand.");
+        }
+
+        return this.Hand.GetForce();
+    }
+
+    public void Split(int handNb) {
+        // La Banque ne peut pas slip
+        throw new RuntimeException("Bank can't Split.");
+    }
+}
diff --git a/Partie_2/target/classes/ch/hepia/App.class b/Partie_2/target/classes/ch/hepia/App.class
index f7311f97a007d3a3a5afb84aa9256f7b6fc83a88..998649ba6f5768b7ff59fd742b6d46eadcb6f43b 100644
GIT binary patch
literal 2275
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
O(7@0LR^J3pS<L_$5$~k{

literal 718
zcmX^0Z`VEs1_lQPEiMKo24;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk-
z5<5l)W)00Sb_Nbc2L9v>{fyLt%tZZw#KO|l5-tXI1}=~R+>8vY8lIk-VIUD+9tJ)J
zentk)^wbiFIz|Q|4NV`g4W%WSIr=`C#U<9<41x?o><q#@3?dAoj0}9J(u@qu>8T}*
z45AvIP@PC_vu0-yXJinDyT&WEG$qwJv8W`Ki$RP*l7~SG<Rz})jQnzl1K1g47#Vor
z>KzLT7#Ucc^HWk88TfrN^HTjvbCXhwLK2g5QW+V9eDaeMbHWmfGC_Q(AWKO`W-%iJ
zpAWJj){G1+xrv#1j0|EL(GdTET^U?bl$n=qtr^D1z>-*$Ud+fKj76G}fzv4`F*(~S
zF*%!&K@edw#Ld=>3|ztarA5i9ZkZrwaX1zf=z#)>L6Je4fr$YGm>3vA(Z|5ZAj`nO
zpwGa_z{tSBz^b*KfpH@P0|OI-90LOb8(5H;L7stufd|ZHWl&&HWME+6WKd#IhH75P
zzydZjb~giiqyU?M$#w=#AMI@nJj^>81eh2OFo<nqkO1*n(D<xqd^R*bI}#t^C^-gp
z1_lOp1|9}Z1{nr!1|0@o1{(%`1|J4Nh8PARuw%s_4q{MYPz5_ZkU@<>9qdO9u;(-Z
DrV)_1

diff --git a/Partie_2/target/classes/ch/hepia/COULEUR.class b/Partie_2/target/classes/ch/hepia/COULEUR.class
index c582fd28bd308c74abcc31d7c543625ab96af75b..c38a76f38b5f56aec3100849ad749e77c1255bcd 100644
GIT binary patch
literal 1044
zcmX^0Z`VEs1_lQPGj;|hMh1c84E>DMg3LsHXa7(i*U%t#1{OvJzO2NuME#t^ymWon
zywY4o2G->K)Y2kG1|c7G_126G?8%8mMX8CUj0~&=nT4gPj0|igMX6~ysf-NVu707u
zDq)U3p{~J<48qaav~$=b=Vaz(me?^eFl%UrF*2|?=clA{FtBnlFfs`8FbFXSGcvH*
zK$VDT_#hk?TvC*omu~H;8OF)L$RNtYz{<eJ!N3mUNboSQgE$-@jx-Mg2Z+N7;>htZ
za5AugSPDE0TnyZd4E#Qsd8vM-xk;%-A&E&KcMJLCCnx5FB^G6Z_+UXU24)69Mh2FW
zjLc$22DY-qoYK@{Mg~z0O)S3RV$fjFVrS4~WDr1dZDnyuYAz3hHiHf$17~7UQDS9s
zenBN8gBG%%{FAa$lS`~Uk-P~L@&ttrJJ@FbG)4wBWNpx((8LU3ki!jl7<3s785vBG
zwK(S_78hG1*#kEN;bu_uTQf3n1?QI*C8xS&f&z!jIkBiDRS%?yk%2QfGd(Y{q_ilN
zkwFE?ERaSUOvl(+I~Xu9GB7hRFt9pEg5ryT!9fxfRbZNffelP^f@lFLQ1mb`Ft9Li
zFz_(&GB7gmF)%Q+Ft9LyK*(+e#z-N4=Ismun;AsF95EI!M;y$NWCe4iz#JJiFh`bs
zF9TyF^Ckw7;7FED4C29&teY65f+N{BF~|mQW{}^=z`(%7pvb_$AjZH7wwafKl|hPu
zjX|A(oxy~GnL!Dx0;EcaK^W>HLk4EBkJz=eWwtXYBMf0<U}Ru`YT^O2*%?$oUSr^7
zP-ReqYBytG1#1`E#2_E(&8)RA(gx&8UuNkY4C*=?z!rj>1Tl>f?gUN-T?Rd<8CncX
eVDq_z7`1jV=pSHU#I28s!3b=oF@p)1HU$7;|I5Vy

literal 1075
zcmX^0Z`VEs1_lQPD|QAZMh1c84E>DMg3LsHXa7(i*U%tN21W)J9tKthHbw^4<owjq
zB1Q%wA9PjLAY~jp44fck?8%8mMX8CUATe$p1|E<YYe8mVX(~vBkB5ODB*Iowl$w?U
z782xP5MmH!WMEebbMy&y4Q6Bzj>fcti$Rn@jGaN4he4b{0_2#S{Jc~~1`!QSpRB~P
zME#t^ymWp4q^#8B5^F97DF$hF1{od(Sq3>q20nxW*SykPMh5n>#GKMp|1?GhQw=2D
z&N+$2#nwmy!6ikRdFj^3Hh>HOo3Fsbpva)a$iQZknU`5&$H*XtY!p<dr)C%j11lE;
zBZC4511ARq4+jH3h^NWJpv9mK@-o;Z#f%K18k$%<&B(w8Q^4Y!pOVVR!0(fpm+DuV
zo0M7<l9-f}%E+LG#a>O!@B_tLesW??SYlBoNF!7?OI~7bDo73yMo_miGO(0nWEL|r
za0X|l=Ovbu7Ns&WFl%UrF*0!2B<DbVt%4L>ps=yQwAs#@k%22XzqBYh)h!d`VlL;z
zqLNfSkc|!o42%p?3=9mc4w9f$#=zhp2}(v_numc6O!I?i0Vz-_0jXr*WYA&IW?*E{
zWnf@XVqjzd0j^C90^1lw4lsyrU|?WiWYA+^U|<8wF*9&7$TH|d)tfLdfknB57`1jV
zNFHEd1gU32QE$M&z`z4h#bC%_#K6G71d3}0Ca{f$49pD73=9nHTG}$(8RR#DrID>e
zXlG|I205L<1gyqXfD07sP=}Z@uz=jnAj`g&fiaSK69aQ_B+DiS_TWg?O$=PYk!+h7
zc!NQ1L-h*>gBgP<)QDuL5!SmI7$b$0nYS~jY-V5vb5vQt9Ck2AjTOw{0&~>az#QHk
v3>upm1VFBbSRls0%D}+D!obVG${@wS#-Pr?&S1j8%)kV7y*Yyg*cX-n^pnST

diff --git a/Partie_2/target/classes/ch/hepia/Carte.class b/Partie_2/target/classes/ch/hepia/Carte.class
index 341e2309b35bffef294182e2a3233fa317f33bff..bb77e1a2cf2b2c55d68d07f73a271f6ad870f1c6 100644
GIT binary patch
literal 2722
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
I796AJ03*At7ytkO

literal 3224
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

diff --git a/Partie_2/target/classes/ch/hepia/GameManager.class b/Partie_2/target/classes/ch/hepia/GameManager.class
new file mode 100644
index 0000000000000000000000000000000000000000..7226155cb75926f7fc3c4f4862943474c91eab01
GIT binary patch
literal 3053
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

literal 0
HcmV?d00001

diff --git a/Partie_2/target/classes/ch/hepia/Hand$1.class b/Partie_2/target/classes/ch/hepia/Hand$1.class
index 908aad6a87b844477dcbcdc972021120b67c4dcc..a8bc740546856cee4b41e4cfb3e1d26a464d6de7 100644
GIT binary patch
delta 698
zcmaFL@q)wu)W2Q(7#J8F7#!Fcm>3!OlQZ-)QVTK@^*s{vQdA7t8CVz@1hNv#67_Qu
z^V0SGld@8iOV}CM7#T#sqNOF7Ir`4|xdn+ui6!|(laDjXvDswiWtP}Y&SaF4;$&cC
z;N@XpXW-ysU}oUwVc=vCU}Rv{&<va0%ILzuo($HRI$4uZO^%B}f<cO%L6VVy5AF)*
z#G;Z^9tLR!nTg?Qa&im`><sdZ3<3yw|4<*-&>$WLMFypbvsD}=7*u!|R2kG58Q9ZP
zOM(*f(!sWQaxrKyXt6VBGBOB)oelPkXI@EadTJ35gD8VGBLl03r>Cap<VTDZ%3KVL
z3??99F-8Wi;QZ2}<W#rJoK!{zPEe@mflQbj#pGSj@0ypKlV6;fm+qTdl98Xn&S1^R
zzzcUANHGtCEy%|l!TCicAU-1lk7r(9YLRnJVsUY5F(U(qUutoQM}Bb$g8~C112Y37
z11kfgfB-1S7#J9s85kHi89?sgW?*12VPIllVqjq4($e0_z@t^aoq=y70|NsSgCGL~
z0~-S)0|P@4gAfA)0}q(Z#URWe!oa}5$RNrf#=yt`GNO)wiGhWIfk94t8-uvcHU{x+
z46=5zvl#fbw=pQ|Y-3Q~!JxiIb`98Skf}mo)nN=g3=s?h3{ea+3~^u^v=~?z*clk)
zKvqmXz^tDm%3uVwLYILV>~3By?E?%FItLgewlNrkOhk4kBiIy>XIL3b!G17fFbC5X
f43-QG3@i**3^ojQAkQ)|f_=llz`$S+R$&DI5!`y9

delta 704
zcmaFC@suO{)W2Q(7#J8F80@$hm>8JZ8CZB2SQ*$D83eKt%M$f-67$ma{gbj%lS>#G
z*laTMGE3|j8JIOR!?+kY7&zG(xOf=28F&~O_>wd9Gg1pO6ZM@Fi%L=_TQaK2@iFkT
zGYIf72r>vUG6*0P_=ozqh6YWpWmHk+U=ZP95M>Z!WMEHEEeT4@O9z|o$;BYSAj!@k
z#ls-YAT#+Oqlh6R1AB6QZb4#EDkB4{hNq{dCl`YpgFHKf0!WP_BLhF&0*}PJ6cxjX
zU)9Xm8I&0rM8G~NEy>K$cLtk~Sdw4F$RMQQgQCM)GmMde#W_DEb>d2wiGebcpE8zC
zu4VGB=L*g*ElN&x%gjk-WZ(oDt_L!ak%8YeFF7Z_I5RKZH?<@qKZTval97QI#ZVpw
zYfxZv1m_o(fOIl4aQLMbmw4nCmoPH$c;@A$7CGl678j=$Gbk{~F)%SOGAJ=HFfcPP
zFt9SHFfcNxGSo9LSTZm&FoA@$wlgqpWME)mVo+mXU|?flWME)$Vo+ybU=V{SV9;RD
zWB>tH1}z3{21W)(25AOGusIA2bqq`lEDQ_`a@yM%*mbrsuy14FwUeF2z^}cHL0D%S
zgYXUp@inq*!1ja87Xqu6bz|UR@L&*N@M4f*@B>?>1(uKlSvL7BvwoR0gAvpUa|ULx
z<9W5T4=`}(9AMzs#sD@E)5Sbs*Yko50eOwV80;?-22(I?#$e9Cz`(*_!C=K;0~WDh
Suw`Ii;9_88kOO&;fdK$um3y54

diff --git a/Partie_2/target/classes/ch/hepia/Hand.class b/Partie_2/target/classes/ch/hepia/Hand.class
index 6d7bd2ac1a5d5ea193a65f676b466df1e45e3039..ad363bf8d905b7cfbc4a9c8e5bad819297676ea1 100644
GIT binary patch
literal 4280
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
QXV}Of$*_rm0i0>00DwVff&c&j

literal 3592
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
QO&J&%W--iRn8zRq01|8$cmMzZ

diff --git a/Partie_2/target/classes/ch/hepia/JeudeCarte$1.class b/Partie_2/target/classes/ch/hepia/JeudeCarte$1.class
index 2735eb7c27de1aa52aa4584d2c1ef9d746a2b524..e87f2ad85071fb1b622c4a955974eae6caf97a63 100644
GIT binary patch
delta 665
zcmZqW?BEPN^>5cc1_lNP1_yQqCPoI)<P80c)Pl@JeXrEglvL-$qLNe<Lv{uhMh1bb
z#Ii*FoW#6zegCAa)Z`L&1~x_p5wK`!NoJ0|bAE0?Vo_pAe$nKcj4Et4nR%Hdc9ZiN
zm83Ws7#VnZ7}yy&xEPoj_<0yO83Y&^m^C!RCQoGa;$Tk(>r9=j&!{HH#UQ~T#m*qf
z$iN483)mSv4AKlT6T{Wy<QNp#8RQum1Q7E6p+2smK|BnK3`!Gct2jz9sPHhTGN>^!
zu&1Y%1SRIBgKhKVV$fjFVrS4~WDo>98|)d+ypq)P)FK`RQ3h>B238GEPfgFszZfgH
zxEL52OhCe7lXo*IPA*~c6y|r$OU}tJ&df{qO)bgDPhn@Up8TFkqMnn%mXU!)!&5Vi
zk%7lEFE6#oIVZ8WIJKCOfx|DgxWpsBxP(E0fsuikfsuigfl)vJ6c`K)49pA+44e!g
zo46Sm7)%(L7?>Cs7`U{ww=(c(ZD-)y$iTqB#30DPz`(}9$iTp$&LG6Vz`z4$b1?`r
zh%hiPFfzo7GKeuSGJuSzV_;%nVPIg8)857)uCt9nd>ezTo$M?Ie(h}x$~xN^ly@+w
zuaR8?wi;xt5LmS~0}q2Pg8+j*gA9W)*a|JMxE#oe$q$(Ib3_@8pf>0-FoT`VtEGK_
zK|<#MgTyulV~~N!?qmcT0`dzhgDKb#W(?+F+JeE7fq{XA!HU6#!4BkC21c-N7#J8B
I?7=Fm06t)FjsO4v

delta 641
zcmeC+Y~>6;^>5cc1_lNP20JbWCI)791{NL$Rt7dk27#=^vPAuy#JqHU|D>$c<Pt^(
zHk-`6%o00B24)S-FfIlT22OScE*=JM1|CKRzT^!3jMRe6M1AMPqLS3ffsAT$d<^{T
z3<5k1f($~83<3xR{-Hjup+S?UGO9#yFo^Ilh%$&VGO(womINi{rGriP<YJIukYs0&
z;$e_xkYQvHL^#GXuOu}+wTO{{Jvl$OAh9Twk%3ji(^J!vi$RV-o}EDfq(yNeuf$|t
zMm1)32IYx%k`o&hChqo{7_Kz=FJtNC*-YM(>zL&0`CappbMlKb^U{4&OEU6P*cmJt
z8HC}^^hzyFNd<cb6e8A)3@jR+nqiC#9Db?AB_8?3C5#L_o_TqxMb0^i#l@+`3<?Z#
z3``7+3`z_P49pA+46F<)42%q_3=9mG42%p+AQ7$Y42&BY7#Nrs)EMd+7}yvX85kJU
z8PpjV7{nkd7&I6(89;!QL5o3~fsuicL7G7kYEB&k69Wqa1B0CQHU@T`Z4B(&7<lbu
zXEE?=Z(|VF*~TEegF$?a>>9BBY77hvLSWU}3_J|F3<3=L3^EMHV7s(H;%p3ZAj>Ad
zW!5i~W-x+UVa~t|c08|^_5lVCodXOU+Zezmf}D)%Vji&Tc|nGN{KjAm_LvESDVR26
hFlS(3U}3Oeuwt+Qi&!w&GB7Z3F)%X7fjr2-002D2XG{P9

diff --git a/Partie_2/target/classes/ch/hepia/JeudeCarte.class b/Partie_2/target/classes/ch/hepia/JeudeCarte.class
index 9db2f435378dabe844941e28f2ab1ffb196c1d54..d4ddff183e9cf28c6ac28b70552d4d214022baff 100644
GIT binary patch
literal 3159
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
b82T9)z=f$MsL)_wV3@$bz`(-5$e;-T4cwB;

literal 2471
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
JW`WWv0|5BD6=MJZ

diff --git a/Partie_2/target/classes/ch/hepia/Joueur.class b/Partie_2/target/classes/ch/hepia/Joueur.class
new file mode 100644
index 0000000000000000000000000000000000000000..455ae8e3d5d3b73cf7c6b9a46b235bea191911ed
GIT binary patch
literal 390
zcmX^0Z`VEs1_lQPDRu@XMh5=m4E>DMg3LsHul&-~(js;S7Dfhvti-ZJ{hY+SbbbG%
ztkmQZMg~5Y)U?dJ)Zmh$#FEtXN=61|4b3n{1`fxR6yN;3)JjGM77Z7W2zO9wZhl!R
zRFK0xwFJs!*3fieWMB(UEpbXMVPs&{aPb7GXLE-NuxNOK6mYl{C6+rU7NsyUNNRZc
zAe@(4nv&|ASX7c~4bsLDoRMGdk(iePvKVX-CrqT6k%2Y1ASbhgkpX1ATYgb;Dnykh
zBLi1(erZv1s#|7GDkB3o#Ls#l@3Jv4FfuSRfB-iOBLgb~8v`gP*cmv$G$)kiV&Dez
qc^G)XG#>*$m=<6V1k*wc!eCkis$Ue!7h@1-0NEhHz`(%7APE3Ha!ft|

literal 0
HcmV?d00001

diff --git a/Partie_2/target/classes/ch/hepia/JoueurCroupier.class b/Partie_2/target/classes/ch/hepia/JoueurCroupier.class
new file mode 100644
index 0000000000000000000000000000000000000000..a4e1c259ee886a8733884a95595ef85a14b310b8
GIT binary patch
literal 1857
zcmX^0Z`VEs1_lQPFLnkdMh5ZZ4E>DMg3LsHul&-~(jw=g{L+HV)FO5U7Dfhvti-ZJ
z{hY+SbbbG%tkmQZb_O;^27WXxj0`LuiFqlE4E#QD8IXWABLkaFW?p8A9V3H;213p&
zwKOHwIkBiD)mk%*k%7fIKP8omfti7qhk=uUkCA~{Lo<w>L4c8g7sWU(27U%1kP=}=
z21)G3d1{7nGB7fT@-VP7aDd#CnV0HUnwykb6q1;flgh{-<ddJAm=l&*lnLTP1zAcm
zGK(1*B#~T*5){^q49s4srHl-sNGcG1U}WHPNlnYlOARh5N-RlDuViH4a7;<@&Cg4%
zWMp8`Z~^&7fssK95tu=xc_o>-sjd~tsRbpO`FR`+N{kFbPKkNh3K@yT3VHboVBLCL
z4Dt*rATO&jGKgyUAPfjDDay=C2L~TpVs3tEUI`-uqYEPgcTj3>epxD5HzNawduj=k
z$*iI2!pOiDoLb_PTEfV{s^Q|P8OFh&$H*WEwl*a{wKz|`M8PSwM30eyEh8~6#V?7G
zfzgwZfz2JNiABQ`WC({#QDV7sVo?ex8a%NE3CL(OMg~!^(I6k?=jBu?7%G5_)dR(&
z1rLKI0~aHM0L(16qWoO<#N1Ry2HxP3#N=$>!~$sSa0X}OmxGd1F-W5=4}%>jjc~w3
zK_To3N=6{hy5$!or$R(LL8_g37#tW}z$wa;k%2Y1ASbhggTWo<>EuL^m%*ZXj0{}C
z`K3k4scxB|gu)HU4SJv;XHZ~ZWMF1sWME}rWMBd%Ed~Y#9tK7RP6jRpMh0#M1_nO{
zRt6>p1_mLm?F>9xyBYW+wOO|_2ySH%*~q}az{DWNz`(%Az|6qF@Q;Co;Xi{QBLjmt
z0|SE?L>GeugCqk82r)=8NHZ`pFfzz6@IlSiW?*1o1Yv|xY#;$fR<IEuhkz77j9_Gt
zWsrkvv}0ffTgkPXK|WGQaXW+Zez;>GCUAmHfH;B+?g%ahH3oICBQ!`bi;sX=nhaV{
zcbR|#lYs%ZyM)1JL3{>t7bAl<gAUXL4+dri76zCJx>$TB0X9Ja;(rXEF)(m3=rb6A
z-C@XJ1T_^DUZ6;XxC@)9vS3p&!wX~<DAJ4>OrU0ELBn2LdL{!eIQ&gPuGHGXAfmI4
z!5kEo%-~cZ1o8-@5(5jPG6Nr@8iN?4I@l73)5YOV7Y92Sln%tfX@rTvih%*-0Z=lr
zh9?#?aJ(@vaDZ&u#$W@o2$KA`KuL{Ji-Da{8*Bk2bUC0FFf!ON*hAeO&%g{)%OHm7
zcBqNSPS<B(VKiXiV>D(EWi$bs3<)1GsL7y24hbJ52Rkr0LM@BNXPMI)upi;MhtYz8
oh0&6MkI{x$i(KKpLXBNFP;8*(21g`AVW|$5Qb4im0aot`0DP++MgRZ+

literal 0
HcmV?d00001

diff --git a/Partie_2/target/classes/ch/hepia/JoueurHumain.class b/Partie_2/target/classes/ch/hepia/JoueurHumain.class
new file mode 100644
index 0000000000000000000000000000000000000000..b8f42854962650befa0899a29206b537071ffb3f
GIT binary patch
literal 3197
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
Y=rOc1v@t*;k(q%}l!1|<9h{Ln00H%Va{vGU

literal 0
HcmV?d00001

diff --git a/Partie_2/target/classes/ch/hepia/JoueurOrdinateur.class b/Partie_2/target/classes/ch/hepia/JoueurOrdinateur.class
new file mode 100644
index 0000000000000000000000000000000000000000..d366926e71ddda91c377e09f4585de936f9bb295
GIT binary patch
literal 3160
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
LBSR}VBewwnE8U1B

literal 0
HcmV?d00001

diff --git a/Partie_2/target/classes/ch/hepia/Paquet.class b/Partie_2/target/classes/ch/hepia/Paquet.class
index 287773450d9a2e8fcd9120c796067e1f9f2a10cf..79dc7afd66ab47cc77bb82fcf6c5682425eccc23 100644
GIT binary patch
delta 562
zcmZo;Z($ES^>5cc1_lNP1|xO`CPoJS<P80c)Pl@J{eZ;6($o@m1{OvJfvm)`ME#t^
zymWp4q^#8B5=I8L0<bhAgMbfMva}>KN8cy2xWsxg52J-9n@wh3W{Djm1FMFor)C%<
z1B-KhN-7rvGXpOV11AF?BLlOBW*9qzz(gB~OnwGlP6kE>VIBrn1~zsEQAP$~xGTI;
zOH)#v6N^exxfnzk#6g-R7#UbJJT=2W0#ZB-(je2=i!(~o(sEL{8Dtsc*%{;*8Te40
z#lxV$pg8fJ!sK8^^~uW_)dd+n85ub8lH!v=W-~G{W=^hPRG)m4v9g|#fti7Ufsug;
z<QxV@26hGp1||j$1||kZ22KVp21W*M1_p*b49pCy3=9kwTH6_Tw01M_M{Z{j+{z%t
zY`2_2aW{iVq|9~(F)J2HmTe4@T3Z-|Bw2Pc$S^U4w=grxN-zBXU?T$q12cmX0|SE+
z0|x^G0~Z4e0}lf~17AIZ2m?QZ9D@LZGJ_z4J_8?vIfDp;G6MsH3B*DM6$VuX5U^lS
zV^C*c1UZ61gF&5vi9wJ-jX{$^oq?G_jzN$?i$R-#g+YgbfkA+Q=|6)A0}DF?BO@at
r1A{CBBZDr39s?89bNXN}=`%1wyvqu5@Z>;dIev&$j0^_gFfarFR?=B!

delta 595
zcmZo+Z)2}N^>5cc1_lNP1|u#8CI)791{NL$Rt7dk27#=^vPAuy#JqHU|D>$c<Pt^(
zHk-`6%o00B24)S-Fm?tGMh0Q9qSBJg9DT>4qQpv{%;FL*26hH!P6loU9(D#^9tJ)J
zentlV<P80c)Pl@J{eZ;6(o~RH1z?6GBZGhs!Vr*tYjy@fMh4-Dg~Ewk3<3<oAoqwc
zGO%cPYKDOX#CRCQK@Mau&L~Yw%Sq*CkYtczXOQM$kYSKzWZ*+Jjgf&lF(rkOK~w``
z4U&hfHKQg5TJW-JczSAvF*2|?=clAj4rJ7vyoFJfjWLsvfzfkv1*0Y>M_y8Va$-?Q
z>g4N;)%DyAObiSRj0{X5pD{2p$T2W5Ffqt8FflMPureqxFfu4IFfi<6U}j)tU|_J&
z+RnhJwVQ!GaytX(Rt7F+J6Y*P3@W=B1R`a&GYDC+NV05W5Y^hkz$MADlR<)sA-si|
zarytd8yOfFm>HB97#NfoI2afhxENR%co_H@`05$N82A|!7z7wp83Y*&8Tc5?8AKSA
z85kH$z}5>gs4%E9urLTRs4=K9s53Bw9KoQ$pveFN77SVp>I{rvF>MBQ1||j_1_lNp
z2B!ZEf($I|4BU*2j0_CF7*rV;8FU%+7?{AG(Pv-;>tWT}!obKiIh<Ke9AY5E?;vRd
Ia3~l80MWx@bpQYW

diff --git a/Partie_2/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/Partie_2/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
index 88fcb47..814b859 100644
--- a/Partie_2/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
+++ b/Partie_2/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -1,7 +1,7 @@
-ch/hepia/App.class
 ch/hepia/Hand.class
+ch/hepia/JeudeCarte.class
+ch/hepia/Carte.class
+ch/hepia/App.class
 ch/hepia/COULEUR.class
 ch/hepia/Hand$1.class
 ch/hepia/Paquet.class
-ch/hepia/JeudeCarte.class
-ch/hepia/Carte.class
diff --git a/Partie_2/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/Partie_2/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index 27e7405..8643c6b 100644
--- a/Partie_2/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/Partie_2/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -1,5 +1,7 @@
 /home/padi/Git/java-card-game/Partie_2/src/main/java/ch/hepia/Hand.java
 /home/padi/Git/java-card-game/Partie_2/src/main/java/ch/hepia/Carte.java
+/home/padi/Git/java-card-game/Partie_2/src/main/java/ch/hepia/Joueur.java
+/home/padi/Git/java-card-game/Partie_2/src/main/java/ch/hepia/GameManager.java
 /home/padi/Git/java-card-game/Partie_2/src/main/java/ch/hepia/App.java
 /home/padi/Git/java-card-game/Partie_2/src/main/java/ch/hepia/Paquet.java
 /home/padi/Git/java-card-game/Partie_2/src/main/java/ch/hepia/JeudeCarte.java
diff --git a/Partie_2/target/test-classes/ch/hepia/CarteTest.class b/Partie_2/target/test-classes/ch/hepia/CarteTest.class
index 60dcda85d37ead5584d2ad54aaa8affb1935c4b2..655456ed1f9c7073c51fefd5a6f05ec8d78d542b 100644
GIT binary patch
delta 412
zcmZqRo6E;_>ff$?3=9ko451sj{F&<68O#|O__Gqr67_Qu^V0QQi;D7#I2bG$86raS
zic*X7bIMXv6q56E3o>&OOEUBG6bg#+lX6mXtrWO8Lo!kolJoP5ONvU9OY(~poD+*m
zQZ=0YLw#IBgLD)!^Gd*krb1@1LTO$~YFcJqY6=$@gBgQ04+ATM4I_h?sD=;1^5Bx9
z%)E4K&9KSqn8bwb85vle^HWQUxEKT(9C;X=7@Q|xXR_jVV`N}70*QI>FnBUJPgY=7
zmi1v|;CD&PO;t!q1-YUqHL(<=!jFf+pTT)@0<#8V(B@9&6h=!E24)6E1_lPM-3(@t
zLKfQ@toAc7FfcK2F)%Q&fn~%PxEUB2c))Bf1|9}p1_lO32HVMsY@(CnSjAZFw6`%h
zOs-_LW^{py32?J+XOQ#}a@F3(;6C{&t2Lw7WJNX|R&VWX48D_t*sK`?pep%!G?~Fl
Q1Hn@J*sR%u!PbWW062VMWB>pF

delta 371
zcmbQs*TBbh>ff$?3=9ko43QhT{Fy>I8AKS&c^E7hBp4akN{Uj`a#Fb%1R1P&7+4vs
z85zVie3CQtGg1pO6ZM__Lw#IBgRDJ0HN#jLAb<;`*q(>Mfx(cGfg?S&#4W!lId$?o
zCNW`WMg~^r{M6DSkP=rO1~&%x$>Pjb{9cR<j7A_aA07r@2KUJc%*wI>j12rPiMgo?
zDX9w1iA6=JiKQSFK|Bn>4DOQ`Fl#V|Z9d7I!Wa|Iz{<eHz`!8An?W#g6N8xmj{w(p
z21_3i1{>{d40f$M7>qVDFfcGNa4|42@G&qmFffQQ@H2=rNHIt-aD#bZ?F>8&ybKHs
z{0uw{Y7FWOj0}tnj+0ljsqhFhZ)cG75pvSr#^5q}8ml#<2Sk_^EbOVhjlp{|6Pq=o
m-()*B9aewsZ47~v^VzH!Lng0g(`F3?^KY|RvxkFS5di>XOGcpp

-- 
GitLab