From 510997174a0d724ff4ffe4d43cdf6fbf09e732a9 Mon Sep 17 00:00:00 2001 From: cldupland Date: Wed, 18 Dec 2019 16:40:44 +0100 Subject: [PATCH] Modification d'une erreur de fin de jeu --- .../abstractRules/TerminerSonTour.cs | 11 ++++--- .../classic/TerminerSonTourClassic.cs | 29 ++++++++++++++++++- .../decimals/TerminerSonTourDecimal.cs | 29 ++++++++++++++++++- .../extreme/ExtremeTerminerSonTour.cs | 2 +- .../fraction/TerminerSonTourFraction.cs | 29 ++++++++++++++++++- OrderStacks/view/LastPage_Rules.xaml | 3 +- OrderStacks/view/MainPage.xaml.cs | 3 +- OrderStacks/view/ReglesParticuliere.xaml | 6 ++-- OrderStacks/view/RulesGame.xaml | 6 ++-- OrderStacks/view/SecondePageRules.xaml | 6 ++-- 10 files changed, 108 insertions(+), 16 deletions(-) diff --git a/OrderStacks/model/gameActions/abstractRules/TerminerSonTour.cs b/OrderStacks/model/gameActions/abstractRules/TerminerSonTour.cs index 53efd9d..0eab88a 100644 --- a/OrderStacks/model/gameActions/abstractRules/TerminerSonTour.cs +++ b/OrderStacks/model/gameActions/abstractRules/TerminerSonTour.cs @@ -30,15 +30,15 @@ namespace OrderStacks.model.gameActions.abstractRules * * Fonction permettant de gérer le test de fin du jeu * - * Booléen de fin du jeu + * Booléen de possibilité de jeu */ public bool Test(List CurrentHand) { - if (CurrentHand.Count != 0) + if (CurrentHand.Count > 0 ) { List playableCard = new List(); tryToFindSoluce(playableCard, CurrentHand); - return testEndGame(playableCard); + return testEndGame(playableCard, CurrentHand); } return false; } @@ -53,9 +53,12 @@ namespace OrderStacks.model.gameActions.abstractRules /** * Liste des cartes jouables + * Liste de carte du joueur actif * * Fonction vérifiant que les règles de fin de jeu ne sont pas arrivé + * + * Booléen de possibilité de jeu */ - protected abstract bool testEndGame(List playableCard); + protected abstract bool testEndGame(List playableCard, List CurrentHand); } } diff --git a/OrderStacks/model/gameActions/classic/TerminerSonTourClassic.cs b/OrderStacks/model/gameActions/classic/TerminerSonTourClassic.cs index d842668..564b7a9 100644 --- a/OrderStacks/model/gameActions/classic/TerminerSonTourClassic.cs +++ b/OrderStacks/model/gameActions/classic/TerminerSonTourClassic.cs @@ -172,11 +172,38 @@ namespace OrderStacks.model.gameActions.classic /** * Liste des cartes jouables + * Liste de carte du joueur actif * * Fonction vérifiant que les règles de fin de jeu ne sont pas arrivé + * + * Booléen de possibilité de jeu */ - override protected bool testEndGame(List playableCard) + override protected bool testEndGame(List playableCard, List CurrentHand) { + if (CurrentHand.Count == 1) + { + for (int i = 0; i < ListOrderedStacks.Size; i++) + { + if (i < ListOrderedStacks.Size * 0.5) + { + if (CurrentHand[0].Value.CompareTo(ListOrderedStacks.getStack(i).Peek().Value) > 0) + { + return true; + } + } + else + { + if (CurrentHand[0].Value.CompareTo(ListOrderedStacks.getStack(i).Peek().Value) < 0) + { + return true; + } + } + if (CurrentHand[0].Value.CompareTo(ListOrderedStacks.getStack(i).Peek().Value + 10) == 0 || CurrentHand[0].Value.CompareTo(ListOrderedStacks.getStack(i).Peek().Value - 10) == 0) + { + return true; + } + } + } if (playableCard.Count < 2) { return false; diff --git a/OrderStacks/model/gameActions/decimals/TerminerSonTourDecimal.cs b/OrderStacks/model/gameActions/decimals/TerminerSonTourDecimal.cs index 452f566..0337cbc 100644 --- a/OrderStacks/model/gameActions/decimals/TerminerSonTourDecimal.cs +++ b/OrderStacks/model/gameActions/decimals/TerminerSonTourDecimal.cs @@ -172,11 +172,38 @@ namespace OrderStacks.model.gameActions.decimals /** * Liste des cartes jouables + * Liste de carte du joueur actif * * Fonction vérifiant que les règles de fin de jeu ne sont pas arrivé + * + * Booléen de possibilité de jeu */ - override protected bool testEndGame(List playableCard) + override protected bool testEndGame(List playableCard, List CurrentHand) { + if (CurrentHand.Count == 1) + { + for (int i = 0; i < ListOrderedStacks.Size; i++) + { + if (i < ListOrderedStacks.Size * 0.5) + { + if (CurrentHand[0].Value > ListOrderedStacks.getStack(i).Peek().Value) + { + return true; + } + } + else + { + if (CurrentHand[0].Value < ListOrderedStacks.getStack(i).Peek().Value) + { + return true; + } + } + if (CurrentHand[0].Value.CompareTo(ListOrderedStacks.getStack(i).Peek().Value + 1m) == 0 || CurrentHand[0].Value.CompareTo(ListOrderedStacks.getStack(i).Peek().Value + 0.1m) == 0 || CurrentHand[0].Value.CompareTo(ListOrderedStacks.getStack(i).Peek().Value + 0.01m) == 0 || CurrentHand[0].Value.CompareTo(ListOrderedStacks.getStack(i).Peek().Value + 0.001m) == 0 || CurrentHand[0].Value.CompareTo(ListOrderedStacks.getStack(i).Peek().Value - 1m) == 0 || CurrentHand[0].Value.CompareTo(ListOrderedStacks.getStack(i).Peek().Value - 0.1m) == 0 || CurrentHand[0].Value.CompareTo(ListOrderedStacks.getStack(i).Peek().Value - 0.01m) == 0 || CurrentHand[0].Value.CompareTo(ListOrderedStacks.getStack(i).Peek().Value - 0.001m) == 0) + { + return true; + } + } + } if (playableCard.Count < 2) { return false; diff --git a/OrderStacks/model/gameActions/extreme/ExtremeTerminerSonTour.cs b/OrderStacks/model/gameActions/extreme/ExtremeTerminerSonTour.cs index 08c1c30..a900e34 100644 --- a/OrderStacks/model/gameActions/extreme/ExtremeTerminerSonTour.cs +++ b/OrderStacks/model/gameActions/extreme/ExtremeTerminerSonTour.cs @@ -17,7 +17,7 @@ namespace OrderStacks.model.gameActions.extreme throw new NotImplementedException(); } - protected override bool testEndGame(List playableCard) + protected override bool testEndGame(List playableCard, List CurrentHand) { throw new NotImplementedException(); } diff --git a/OrderStacks/model/gameActions/fraction/TerminerSonTourFraction.cs b/OrderStacks/model/gameActions/fraction/TerminerSonTourFraction.cs index 796ea32..5b49ffe 100644 --- a/OrderStacks/model/gameActions/fraction/TerminerSonTourFraction.cs +++ b/OrderStacks/model/gameActions/fraction/TerminerSonTourFraction.cs @@ -42,11 +42,38 @@ namespace OrderStacks.model.gameActions.fraction /** * Liste des cartes jouables + * Liste de carte du joueur actif * * Fonction vérifiant que les règles de fin de jeu ne sont pas arrivé + * + * Booléen de possibilité de jeu */ - protected override bool testEndGame(List playableCard) + protected override bool testEndGame(List playableCard, List CurrentHand) { + if (CurrentHand.Count == 1) + { + for (int i = 0; i < ListOrderedStacks.Size; i++) + { + if (i < ListOrderedStacks.Size * 0.5) + { + if (CurrentHand[0].Value > ListOrderedStacks.getStack(i).Peek().Value) + { + return true; + } + } + else + { + if (CurrentHand[0].Value < ListOrderedStacks.getStack(i).Peek().Value) + { + return true; + } + } + if (((FractionCard)CurrentHand[0]).Fraction.isMultiple(((FractionCard)ListOrderedStacks.getStack(i).Peek()).Fraction)) + { + return true; + } + } + } if (playableCard.Count < 2) { return false; diff --git a/OrderStacks/view/LastPage_Rules.xaml b/OrderStacks/view/LastPage_Rules.xaml index dc50e67..121bb65 100644 --- a/OrderStacks/view/LastPage_Rules.xaml +++ b/OrderStacks/view/LastPage_Rules.xaml @@ -40,7 +40,8 @@ VerticalOptions="Center" HorizontalOptions="Center" CornerRadius="10" - Clicked="ClickToPlay"/> + Clicked="ClickToPlay" + Padding="10"/> + Clicked="ClickToPlay" + Padding="10"/> + Clicked="nextPage_Rules" + Padding="10"/> + Clicked="ClickToPlay" + Padding="10"/> + Clicked="nextPage_Rules" + Padding="10"/> + Clicked="ClickToPlay" + Padding="10"/> + Clicked="nextPage_Rules" + Padding="10"/>