diff --git a/TheGameExtreme.Android/Properties/AndroidManifest.xml b/TheGameExtreme.Android/Properties/AndroidManifest.xml index 378bf79..635fcfc 100644 --- a/TheGameExtreme.Android/Properties/AndroidManifest.xml +++ b/TheGameExtreme.Android/Properties/AndroidManifest.xml @@ -1,5 +1,5 @@  - + diff --git a/TheGameExtreme.Android/Resources/Resource.designer.cs b/TheGameExtreme.Android/Resources/Resource.designer.cs index 3b51a77..8c17c9e 100644 --- a/TheGameExtreme.Android/Resources/Resource.designer.cs +++ b/TheGameExtreme.Android/Resources/Resource.designer.cs @@ -1,11 +1,11 @@ #pragma warning disable 1591 //------------------------------------------------------------------------------ // -// Ce code a été généré par un outil. -// Version du runtime :4.0.30319.42000 +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 // -// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si -// le code est régénéré. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. // //------------------------------------------------------------------------------ diff --git a/TheGameExtreme.Android/TheGameExtreme.Android.csproj b/TheGameExtreme.Android/TheGameExtreme.Android.csproj index c54cc96..1910ff4 100644 --- a/TheGameExtreme.Android/TheGameExtreme.Android.csproj +++ b/TheGameExtreme.Android/TheGameExtreme.Android.csproj @@ -42,7 +42,6 @@ 4 true false - Full true diff --git a/TheGameExtreme.iOS/TheGameExtreme.iOS.csproj b/TheGameExtreme.iOS/TheGameExtreme.iOS.csproj index 37aa6db..c39dabe 100644 --- a/TheGameExtreme.iOS/TheGameExtreme.iOS.csproj +++ b/TheGameExtreme.iOS/TheGameExtreme.iOS.csproj @@ -36,6 +36,7 @@ 4 None x86_64 + iPhone Developer true diff --git a/TheGameExtreme.sln b/TheGameExtreme.sln index a3b7be5..9cd6b96 100644 --- a/TheGameExtreme.sln +++ b/TheGameExtreme.sln @@ -8,9 +8,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TheGameExtreme.iOS", "TheGa EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TheGameExtreme", "TheGameExtreme\TheGameExtreme.csproj", "{8DE6C881-FF77-4CC4-B8C4-CDEDD9AB13B3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUnitaire", "TestUnitaire\TestUnitaire.csproj", "{DAB0A3A0-CD99-4819-A813-01F10D77BAB1}" +Project("{9344BDBB-3E7F-41FC-A0DD-8665D75EE146}") = "TestUnitaire", "TestUnitaire\TestUnitaire.csproj", "{783EEFEF-AD6C-48B9-89AA-D81B2E7906E0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTestProjectGame", "UnitTestProjectGame\UnitTestProjectGame.csproj", "{4092C852-D253-42F7-A800-E618C99C349E}" +Project("{9344BDBB-3E7F-41FC-A0DD-8665D75EE146}") = "UnitTestProjectGame", "UnitTestProjectGame\UnitTestProjectGame.csproj", "{AAEDA45E-5C40-47DA-AD1F-735DFE845904}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -59,30 +59,30 @@ Global {8DE6C881-FF77-4CC4-B8C4-CDEDD9AB13B3}.Release|iPhone.Build.0 = Release|Any CPU {8DE6C881-FF77-4CC4-B8C4-CDEDD9AB13B3}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU {8DE6C881-FF77-4CC4-B8C4-CDEDD9AB13B3}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {DAB0A3A0-CD99-4819-A813-01F10D77BAB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DAB0A3A0-CD99-4819-A813-01F10D77BAB1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DAB0A3A0-CD99-4819-A813-01F10D77BAB1}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {DAB0A3A0-CD99-4819-A813-01F10D77BAB1}.Debug|iPhone.Build.0 = Debug|Any CPU - {DAB0A3A0-CD99-4819-A813-01F10D77BAB1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {DAB0A3A0-CD99-4819-A813-01F10D77BAB1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {DAB0A3A0-CD99-4819-A813-01F10D77BAB1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DAB0A3A0-CD99-4819-A813-01F10D77BAB1}.Release|Any CPU.Build.0 = Release|Any CPU - {DAB0A3A0-CD99-4819-A813-01F10D77BAB1}.Release|iPhone.ActiveCfg = Release|Any CPU - {DAB0A3A0-CD99-4819-A813-01F10D77BAB1}.Release|iPhone.Build.0 = Release|Any CPU - {DAB0A3A0-CD99-4819-A813-01F10D77BAB1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {DAB0A3A0-CD99-4819-A813-01F10D77BAB1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {4092C852-D253-42F7-A800-E618C99C349E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4092C852-D253-42F7-A800-E618C99C349E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4092C852-D253-42F7-A800-E618C99C349E}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {4092C852-D253-42F7-A800-E618C99C349E}.Debug|iPhone.Build.0 = Debug|Any CPU - {4092C852-D253-42F7-A800-E618C99C349E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {4092C852-D253-42F7-A800-E618C99C349E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {4092C852-D253-42F7-A800-E618C99C349E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4092C852-D253-42F7-A800-E618C99C349E}.Release|Any CPU.Build.0 = Release|Any CPU - {4092C852-D253-42F7-A800-E618C99C349E}.Release|iPhone.ActiveCfg = Release|Any CPU - {4092C852-D253-42F7-A800-E618C99C349E}.Release|iPhone.Build.0 = Release|Any CPU - {4092C852-D253-42F7-A800-E618C99C349E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {4092C852-D253-42F7-A800-E618C99C349E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {783EEFEF-AD6C-48B9-89AA-D81B2E7906E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {783EEFEF-AD6C-48B9-89AA-D81B2E7906E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {783EEFEF-AD6C-48B9-89AA-D81B2E7906E0}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {783EEFEF-AD6C-48B9-89AA-D81B2E7906E0}.Debug|iPhone.Build.0 = Debug|Any CPU + {783EEFEF-AD6C-48B9-89AA-D81B2E7906E0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {783EEFEF-AD6C-48B9-89AA-D81B2E7906E0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {783EEFEF-AD6C-48B9-89AA-D81B2E7906E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {783EEFEF-AD6C-48B9-89AA-D81B2E7906E0}.Release|Any CPU.Build.0 = Release|Any CPU + {783EEFEF-AD6C-48B9-89AA-D81B2E7906E0}.Release|iPhone.ActiveCfg = Release|Any CPU + {783EEFEF-AD6C-48B9-89AA-D81B2E7906E0}.Release|iPhone.Build.0 = Release|Any CPU + {783EEFEF-AD6C-48B9-89AA-D81B2E7906E0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {783EEFEF-AD6C-48B9-89AA-D81B2E7906E0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {AAEDA45E-5C40-47DA-AD1F-735DFE845904}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AAEDA45E-5C40-47DA-AD1F-735DFE845904}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AAEDA45E-5C40-47DA-AD1F-735DFE845904}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {AAEDA45E-5C40-47DA-AD1F-735DFE845904}.Debug|iPhone.Build.0 = Debug|Any CPU + {AAEDA45E-5C40-47DA-AD1F-735DFE845904}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {AAEDA45E-5C40-47DA-AD1F-735DFE845904}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {AAEDA45E-5C40-47DA-AD1F-735DFE845904}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AAEDA45E-5C40-47DA-AD1F-735DFE845904}.Release|Any CPU.Build.0 = Release|Any CPU + {AAEDA45E-5C40-47DA-AD1F-735DFE845904}.Release|iPhone.ActiveCfg = Release|Any CPU + {AAEDA45E-5C40-47DA-AD1F-735DFE845904}.Release|iPhone.Build.0 = Release|Any CPU + {AAEDA45E-5C40-47DA-AD1F-735DFE845904}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {AAEDA45E-5C40-47DA-AD1F-735DFE845904}.Release|iPhoneSimulator.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/TheGameExtreme/AppRessource.resx b/TheGameExtreme/AppRessource.resx index 11bc7f5..03596b8 100644 --- a/TheGameExtreme/AppRessource.resx +++ b/TheGameExtreme/AppRessource.resx @@ -188,7 +188,10 @@ Désolé, vous n'avez pas recouvert la tête de mort... Réessayez ;) - Le jeu est terminé!\n Bravo vous avez gagné! + + Le jeu est terminé! + Bravo vous avez gagné! + La carte ne rentre pas dans la pile sectionnée! diff --git a/TheGameExtreme/model/Card/Card.cs b/TheGameExtreme/model/Card/Card.cs index f4e4f3f..59537ac 100644 --- a/TheGameExtreme/model/Card/Card.cs +++ b/TheGameExtreme/model/Card/Card.cs @@ -3,10 +3,8 @@ using System.ComponentModel; namespace TheGameExtreme.model.card { - public abstract class Card // : INotifyPropertyChanged + public abstract class Card { - - //public event PropertyChangedEventHandler PropertyChanged; private decimal value; public decimal Value { @@ -14,20 +12,19 @@ namespace TheGameExtreme.model.card set { this.value = value; - //OnPropertyChange("Value"); } } - //private void OnPropertyChange(string v) - //{ - // PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(v)); - //} - public Card(decimal value) { Value = value; } + public override string ToString() + { + return Value.ToString(); + } + public abstract String getName(); public abstract bool rapidEffect(); diff --git a/TheGameExtreme/model/Card/cardType/FractionCard.cs b/TheGameExtreme/model/Card/cardType/FractionCard.cs new file mode 100644 index 0000000..45f2fc0 --- /dev/null +++ b/TheGameExtreme/model/Card/cardType/FractionCard.cs @@ -0,0 +1,30 @@ +using System; +namespace TheGameExtreme.model.card.cardType +{ + public class FractionCard : Card + { + + public static readonly String CARD_FRACTION = "FractionCard"; + private Fraction fraction; + + public FractionCard(Fraction value) : base(value.Result()) + { + fraction = value; + } + + public override bool rapidEffect() + { + return false; + } + + override public String getName() + { + return CARD_FRACTION; + } + + public override string ToString() + { + return fraction.ToString(); + } + } +} diff --git a/TheGameExtreme/model/Fraction.cs b/TheGameExtreme/model/Fraction.cs new file mode 100644 index 0000000..6683fe4 --- /dev/null +++ b/TheGameExtreme/model/Fraction.cs @@ -0,0 +1,61 @@ + +using System; +namespace TheGameExtreme.model +{ + public class Fraction + { + public int Numerateur; + public int Denominateur; + + public Fraction(int numerateur, int denominateur) + { + Numerateur = numerateur; + Denominateur = denominateur; + } + + //public int CompareTo(Fraction fraction) + //{ + // decimal d = (Numerateur / Denominateur) - (fraction.Numerateur / fraction.Denominateur); + // if (d > 0) + // { + // return 1; + // } + // else if (d < 0) + // { + // return -1; + // } + // else + // { + // return 0; + // } + //} + + public bool testDiviseurCommun(Fraction fraction) + { + if (PGCD(Numerateur, fraction.Numerateur) == Numerateur || PGCD(Denominateur, fraction.Denominateur) == Denominateur) + { + return true; + } + return false; + } + + private int PGCD(int a, int b) + { + int temp = a % b; + if (temp == 0) + return b; + return PGCD(b, temp); + } + + public decimal Result() + { + decimal result = (decimal)Numerateur / (decimal)Denominateur; + return result; + } + + override public string ToString() + { + return Numerateur.ToString() + "/" + Denominateur.ToString(); + } + } +} diff --git a/TheGameExtreme/model/deck/FractionDeck.cs b/TheGameExtreme/model/deck/FractionDeck.cs new file mode 100644 index 0000000..eb142f8 --- /dev/null +++ b/TheGameExtreme/model/deck/FractionDeck.cs @@ -0,0 +1,37 @@ +using System; +using TheGameExtreme.model.card.cardType; + +namespace TheGameExtreme.model.deck +{ + public class FractionDeck : Deck + { + public FractionDeck() + { + Random random = new Random(); + for (int i = 1; i < 100; i ++) + { + int entier = random.Next(0, 100); + int deci = random.Next(0,100); + decimal d = (decimal)entier + (decimal)deci * 0.001m; + int numerateur = (int)(d * 1000m); + int denominateur = 1000; + int pgcd = PGCD(numerateur, denominateur); + while (pgcd != 1) + { + numerateur = numerateur / pgcd; + denominateur = denominateur / pgcd; + pgcd = PGCD(numerateur, denominateur); + } + deck.Add(new FractionCard(new Fraction(numerateur, denominateur))); + } + } + + private int PGCD(int a, int b) + { + int temp = a % b; + if (temp == 0) + return b; + return PGCD(b, temp); + } + } +} diff --git a/TheGameExtreme/model/piles/FractionPiles.cs b/TheGameExtreme/model/piles/FractionPiles.cs new file mode 100644 index 0000000..d09c4f3 --- /dev/null +++ b/TheGameExtreme/model/piles/FractionPiles.cs @@ -0,0 +1,23 @@ +using System; +using TheGameExtreme.model.card.cardType; + +namespace TheGameExtreme.model.piles +{ + public class FractionPiles : Piles + { + public FractionPiles(int nbPile) : base(nbPile) + { + for (int i = 0; i < nbPile; i++) + { + if (i < (nbPile * 0.5)) + { + ListOrderedStacks[i].Push(new ClassicCard(0)); + } + else + { + ListOrderedStacks[i].Push(new ClassicCard(100)); + } + } + } + } +} diff --git a/TheGameExtreme/view/GamePreparationPage.xaml.cs b/TheGameExtreme/view/GamePreparationPage.xaml.cs index 579af70..831f015 100644 --- a/TheGameExtreme/view/GamePreparationPage.xaml.cs +++ b/TheGameExtreme/view/GamePreparationPage.xaml.cs @@ -8,7 +8,7 @@ namespace TheGameExtreme.view public partial class GamePreparationPage : ContentPage { public List listNbPlayer = new List { 1, 2, 3, 4, 5 }; - public List listGameMode = new List { "entières", "relatives", "décimales", "dizaines", "centaines", "millièmes" }; // , "fractionnées" + public List listGameMode = new List { "entières", "relatives", "décimales", "dizaines", "centaines", "millièmes", "fractionnées" }; public List listNbStack = new List { 4, 6, 8 }; diff --git a/TheGameExtreme/view/MainPage.xaml b/TheGameExtreme/view/MainPage.xaml index cd3219b..85d0bb1 100644 --- a/TheGameExtreme/view/MainPage.xaml +++ b/TheGameExtreme/view/MainPage.xaml @@ -68,10 +68,6 @@ HeightRequest="45" BackgroundColor="{DynamicResource BlackColor}" Clicked="PlayToHome"/> - -