diff --git a/Documentations/Rapport.docx b/Documentations/Rapport.docx new file mode 100644 index 0000000..d84b4e3 Binary files /dev/null and b/Documentations/Rapport.docx differ diff --git a/TheGameExtreme/model/deck/Deck.cs b/TheGameExtreme/model/deck/Deck.cs index 2028ce2..60a2369 100644 --- a/TheGameExtreme/model/deck/Deck.cs +++ b/TheGameExtreme/model/deck/Deck.cs @@ -9,11 +9,6 @@ namespace TheGameExtreme.model protected List deck = new List(); - public Deck() - { - - } - public int size() { return deck.Count; diff --git a/TheGameExtreme/model/gameActions/classic/GameMode.cs b/TheGameExtreme/model/gameActions/classic/GameMode.cs index 2845da0..17159ea 100644 --- a/TheGameExtreme/model/gameActions/classic/GameMode.cs +++ b/TheGameExtreme/model/gameActions/classic/GameMode.cs @@ -12,11 +12,27 @@ namespace TheGameExtreme.model.gameActions.classic protected List gameActions; protected Piles piles; - public event EventHandler TopRangeChanged; protected int nbCardAtBeginOfTurn = 7; protected Deck deck; private int nbMaxCard; + + #region + + public event EventHandler TopRangeChanged; + public event EventHandler PlayerChanged; + protected internal void OnTopRangeChanged(TopRangeChangedEventArgs args) + { + TopRangeChanged?.Invoke(this, args); + } + protected internal void OnPlayerChanged(PlayerChangedEventArgs args) + { + PlayerChanged?.Invoke(this, args); + } + + #endregion + + public GameMode() { gameActions = new List(); @@ -91,24 +107,22 @@ namespace TheGameExtreme.model.gameActions.classic } } - protected internal void OnTopRangeChanged(TopRangeChangedEventArgs args) - { - TopRangeChanged?.Invoke(this, args); - } - public bool endTurn(List currentHand, List CurrentCardPlayed, Player player) { - ((TerminerSonTour)gameActions[2]).end(currentHand, nbCardAtBeginOfTurn, CurrentCardPlayed); - pioche(currentHand, player); - //currentIndexPlayer += 1; - //if (currentIndexPlayer == playerList.Count) - //{ - // currentIndexPlayer = 0; - //} - //CurrentHand = playerList[currentIndexPlayer].getCardList(); - //OnPlayerChanged(new PlayerChangedEventArgs(CurrentHand, playerList[currentIndexPlayer].Pseudo)); - nbCardAtBeginOfTurn = currentHand.Count; - CurrentCardPlayed.Clear(); + if (((TerminerSonTour)gameActions[2]).end(currentHand, nbCardAtBeginOfTurn, CurrentCardPlayed)) + { + pioche(currentHand, player); + nbCardAtBeginOfTurn = currentHand.Count; + CurrentCardPlayed.Clear(); + + OnPlayerChanged(new PlayerChangedEventArgs(currentHand, player.Pseudo)); + return false; + } + else + { + return true; + } + //if (isEndGame()) // Ajouter le score en calculant les cartes restantes dans la pile et dans les mains des joueurs //{ // displayWinner(); @@ -118,7 +132,6 @@ namespace TheGameExtreme.model.gameActions.classic //{ // return true; //} - return false; // Changer } //protected void displayWinner() diff --git a/TheGameExtreme/model/gameActions/classic/TerminerSonTour.cs b/TheGameExtreme/model/gameActions/classic/TerminerSonTour.cs index a0bcb6c..36d7140 100644 --- a/TheGameExtreme/model/gameActions/classic/TerminerSonTour.cs +++ b/TheGameExtreme/model/gameActions/classic/TerminerSonTour.cs @@ -15,7 +15,7 @@ namespace TheGameExtreme.model.gameActions.classic { // Si carte qui fait piocher que d'un, vérifier la bonne pioche (penser si elle vient d'être recouverte) // Sinon - if (nbCardAtBeginOfTurn == CurrentCardPlayed.Count || CurrentHand.Count == 0 || (nbCardAtBeginOfTurn - CurrentHand.Count) >= 2) + if (nbCardAtBeginOfTurn == CurrentCardPlayed.Count || CurrentHand.Count == 0 || CurrentCardPlayed.Count >= 2) { // Ne pas oublié de gérer les ThreeCard return Test(CurrentHand); } diff --git a/TheGameExtreme/model/manager/GameManager.cs b/TheGameExtreme/model/manager/GameManager.cs index 28c3b66..4798676 100644 --- a/TheGameExtreme/model/manager/GameManager.cs +++ b/TheGameExtreme/model/manager/GameManager.cs @@ -25,6 +25,7 @@ namespace TheGameExtreme.model.manager protected int nbMaxCard; protected List CurrentCardPlayed = new List(); public String EndMessage { get; set; } + protected int currentIndexPlayer; protected List currentHand; @@ -41,7 +42,7 @@ namespace TheGameExtreme.model.manager #region event public event EventHandler TopRangeChanged; - //public event EventHandler PlayerChanged; + public event EventHandler PlayerChanged; public event PropertyChangedEventHandler PropertyChanged; public virtual void OnPropertyChanged(string info) { @@ -51,11 +52,26 @@ namespace TheGameExtreme.model.manager { TopRangeChanged?.Invoke(this, args); } + protected internal void OnPlayerChanged(PlayerChangedEventArgs args) + { + currentIndexPlayer += 1; + if (currentIndexPlayer == players.Count) + { + currentIndexPlayer = 0; + } + CurrentHand = players[currentIndexPlayer].getCardList(); + PlayerChanged?.Invoke(this, args); + } #endregion + //protected bool win = true; + //public String EndMessage { get; set; } + + + protected GameManager(List playersNames, GameMode gameMode) { nbPlayer = players.Count; @@ -78,7 +94,7 @@ namespace TheGameExtreme.model.manager public bool endTurn() { - return gameMode.endTurn(currentHand, CurrentCardPlayed, players[0]); // Mettre le joueur actif + return gameMode.endTurn(currentHand, CurrentCardPlayed, players[0]); } diff --git a/TheGameExtreme/viewmodel/Main.cs b/TheGameExtreme/viewmodel/Main.cs index 5212f9b..34b9085 100644 --- a/TheGameExtreme/viewmodel/Main.cs +++ b/TheGameExtreme/viewmodel/Main.cs @@ -50,7 +50,7 @@ namespace TheGameExtreme.viewmodel gameManager.TopRangeChanged += OnTopRangeChanged; - //gameManager.PlayerChanged += OnPlayerChanged; + gameManager.PlayerChanged += OnPlayerChanged; CurrentHand = gameManager.CurrentHand;