From 0d82f288361732282ea589ff92bedc56f4074455 Mon Sep 17 00:00:00 2001 From: cldupland Date: Thu, 28 Nov 2019 16:38:37 +0100 Subject: [PATCH] Ajout des fractions finales --- .../Properties/AndroidManifest.xml | 2 +- TheGameExtreme.iOS/Info.plist | 4 +- TheGameExtreme/model/deck/Deck.cs | 117 ++++++++++++------ TheGameExtreme/model/deck/FractionDeck.cs | 13 +- TheGameExtreme/model/piles/Piles0To10.cs | 23 ++++ TheGameExtreme/view/HomePage.xaml | 11 +- TheGameExtreme/view/MainPage.xaml.cs | 6 +- TheGameExtreme/view/TouchManipulationCard.cs | 19 ++- TheGameExtreme/viewmodel/Main.cs | 4 +- 9 files changed, 128 insertions(+), 71 deletions(-) create mode 100644 TheGameExtreme/model/piles/Piles0To10.cs diff --git a/TheGameExtreme.Android/Properties/AndroidManifest.xml b/TheGameExtreme.Android/Properties/AndroidManifest.xml index c33db26..0991f6f 100644 --- a/TheGameExtreme.Android/Properties/AndroidManifest.xml +++ b/TheGameExtreme.Android/Properties/AndroidManifest.xml @@ -1,7 +1,7 @@  - + diff --git a/TheGameExtreme.iOS/Info.plist b/TheGameExtreme.iOS/Info.plist index 90ddd14..4cd11c4 100644 --- a/TheGameExtreme.iOS/Info.plist +++ b/TheGameExtreme.iOS/Info.plist @@ -29,9 +29,9 @@ 1.0 UILaunchStoryboardName LaunchScreen - CFBundleName - TheGameExtreme XSAppIconAssets Assets.xcassets/AppIcon.appiconset + CFBundleName + OrderStacks diff --git a/TheGameExtreme/model/deck/Deck.cs b/TheGameExtreme/model/deck/Deck.cs index cd35fc1..9ea5c98 100644 --- a/TheGameExtreme/model/deck/Deck.cs +++ b/TheGameExtreme/model/deck/Deck.cs @@ -24,41 +24,86 @@ namespace TheGameExtreme.model.deck return deck[index]; } - //protected void InsertionDichotomique(List deck, int start, int end, Card card) - //{ - // int mediane = (end - start) % 2 + start; - // if (mediane > deck.Count - 1) - // { - // deck.Add(card); - // return; - // } - // int comparateur = deck[mediane].Value.CompareTo(card.Value); - // if (mediane == end) - // { - // if (comparateur > 0) - // { - // deck.Insert(start, card); - // } - // else - // { - // deck.Insert(end, card); - // } - // return; - // } - // if (comparateur == 0) - // { - // return; - // } - // else if (comparateur > 0) - // { - // InsertionDichotomique(deck, start, mediane, card); - // return; - // } - // else - // { - // InsertionDichotomique(deck, mediane, end, card); - // return; - // } - //} + protected void InsertionDichotomique(List deck, int start, int end, Card card) + { + if (deck.Count == 0) + { + deck.Add(card); + return; + } + + int mediane = (end - start) / 2 + start; + int comparateur = deck[mediane].Value.CompareTo(card.Value); + + if (comparateur == 0) + { + return; + } + + if (mediane == start) + { + if (comparateur < 0) + { + if (deck[end].Value.CompareTo(card.Value) < 0) + { + deck.Insert(end + 1, card); + return; + } + else + { + deck.Insert(end, card); + return; + } + } + else + { + deck.Insert(start, card); + return; + } + } + else + { + if (comparateur < 0) + { + InsertionDichotomique(deck, mediane, end, card); + return; + } + else + { + InsertionDichotomique(deck, start, mediane, card); + return; + } + } + + + //int mediane = (end - start) / 2 + start; + //int comparateur = deck[mediane].Value.CompareTo(card.Value); + //if (mediane == end) + //{ + // if (comparateur < 0) + // { + // deck.Insert(start, card); + // } + // else + // { + // deck.Insert(end, card); + // } + // return; + //} + //if (comparateur == 0) + //{ + // return; + //} + //else if (comparateur < 0) + //{ + // InsertionDichotomique(deck, start, mediane, card); + // return; + //} + //else + //{ + // InsertionDichotomique(deck, mediane, end, card); + // return; + //} + } } } diff --git a/TheGameExtreme/model/deck/FractionDeck.cs b/TheGameExtreme/model/deck/FractionDeck.cs index 633f207..1b68d0f 100644 --- a/TheGameExtreme/model/deck/FractionDeck.cs +++ b/TheGameExtreme/model/deck/FractionDeck.cs @@ -14,19 +14,16 @@ namespace TheGameExtreme.model.deck 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 numerateur = random.Next(1, 100); + int denominateur = random.Next(1, 100); int pgcd = PGCD(numerateur, denominateur); while (pgcd != 1) { - numerateur = numerateur / pgcd; - denominateur = denominateur / pgcd; + numerateur /= pgcd; + denominateur /= pgcd; pgcd = PGCD(numerateur, denominateur); } - deck.Add(new FractionCard(new Fraction(numerateur, denominateur))); + InsertionDichotomique(deck, 0, deck.Count-1, new FractionCard(new Fraction(numerateur, denominateur))); } } diff --git a/TheGameExtreme/model/piles/Piles0To10.cs b/TheGameExtreme/model/piles/Piles0To10.cs new file mode 100644 index 0000000..fa5e45a --- /dev/null +++ b/TheGameExtreme/model/piles/Piles0To10.cs @@ -0,0 +1,23 @@ +using System; +using TheGameExtreme.model.card.cardType; + +namespace TheGameExtreme.model.piles +{ + public class Piles0To10 : Piles + { + public Piles0To10(int nbPile) : base(nbPile) + { + for (int i = 0; i < nbPile; i++) + { + if (i < (nbPile * 0.5)) + { + ListOrderedStacks[i].Push(new ClassicCard(0m)); + } + else + { + ListOrderedStacks[i].Push(new ClassicCard(10m)); + } + } + } + } +} diff --git a/TheGameExtreme/view/HomePage.xaml b/TheGameExtreme/view/HomePage.xaml index d862d47..799d567 100644 --- a/TheGameExtreme/view/HomePage.xaml +++ b/TheGameExtreme/view/HomePage.xaml @@ -18,7 +18,7 @@ -