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"/>