diff --git a/Documentations/Instruction b/Documentations/Instruction index 8ba492a..bd9455b 100644 --- a/Documentations/Instruction +++ b/Documentations/Instruction @@ -2,5 +2,4 @@ Mono-utilisateur: - Multilangue - Changer les thèmes et les couleurs (en option) V => pour l'instant thème blanc et noir - Option pour mettre/enlever le pas de 10 - - Logo entre les piles (à finir de placer et de redimensionner) - - nb carte \ No newline at end of file + - gérer les différents pas pour les différents deck (multiples, etc...) \ No newline at end of file diff --git a/TheGameExtreme.Android/MainActivity.cs b/TheGameExtreme.Android/MainActivity.cs index fb9abc7..56e289a 100644 --- a/TheGameExtreme.Android/MainActivity.cs +++ b/TheGameExtreme.Android/MainActivity.cs @@ -10,7 +10,7 @@ using Xamarin.Forms; namespace TheGameExtreme.Droid { - [Activity(Label = "TheGameExtreme", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation, ScreenOrientation = ScreenOrientation.Landscape)] + [Activity(Label = "OrderStacks", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation, ScreenOrientation = ScreenOrientation.Landscape)] public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity { protected override void OnCreate(Bundle savedInstanceState) diff --git a/TheGameExtreme.Android/Properties/AndroidManifest.xml b/TheGameExtreme.Android/Properties/AndroidManifest.xml index f0a1626..db4d201 100644 --- a/TheGameExtreme.Android/Properties/AndroidManifest.xml +++ b/TheGameExtreme.Android/Properties/AndroidManifest.xml @@ -1,5 +1,5 @@  - + diff --git a/TheGameExtreme/Media/TrierImageB.png b/TheGameExtreme/Media/TrierImageB.png deleted file mode 100644 index 3a216ac..0000000 Binary files a/TheGameExtreme/Media/TrierImageB.png and /dev/null differ diff --git a/TheGameExtreme/Media/TrierImageBMax.png b/TheGameExtreme/Media/TrierImageBMax.png new file mode 100644 index 0000000..ea2b020 Binary files /dev/null and b/TheGameExtreme/Media/TrierImageBMax.png differ diff --git a/TheGameExtreme/Media/TrierImageBMin.png b/TheGameExtreme/Media/TrierImageBMin.png new file mode 100644 index 0000000..ab705c0 Binary files /dev/null and b/TheGameExtreme/Media/TrierImageBMin.png differ diff --git a/TheGameExtreme/TheGameExtreme.csproj b/TheGameExtreme/TheGameExtreme.csproj index 44f3f89..614aeac 100644 --- a/TheGameExtreme/TheGameExtreme.csproj +++ b/TheGameExtreme/TheGameExtreme.csproj @@ -45,11 +45,13 @@ - + + - + + diff --git a/TheGameExtreme/model/deck/CentaineDeck.cs b/TheGameExtreme/model/deck/CentaineDeck.cs index a21c8ac..a882921 100644 --- a/TheGameExtreme/model/deck/CentaineDeck.cs +++ b/TheGameExtreme/model/deck/CentaineDeck.cs @@ -6,15 +6,15 @@ namespace TheGameExtreme.model.deck { public class CentaineDeck : Deck { - public CentaineDeck() + public CentaineDeck(int nbCard, decimal borneMin, decimal borneMax) : base(nbCard) { - decimal d; Random random = new Random(); - - for (int i = -499; i <= 499; i += 10) + int borneMinRandom = (int)(borneMin * 100); + int borneMaxRandom = (int)(borneMax * 100); + while (deck.Count < nbCard && deck.Count < (borneMaxRandom - borneMinRandom)) { - d = (decimal)(random.Next(i, i+10)) / 100; - deck.Add(new ClassicCard(d)); + decimal value = (decimal)(random.Next(borneMinRandom, borneMaxRandom)) / 100; + InsertionDichotomique(deck, 0, deck.Count-1, new ClassicCard(value)); } } } diff --git a/TheGameExtreme/model/deck/ClassicDeck.cs b/TheGameExtreme/model/deck/ClassicDeck.cs index 9394a7d..2ca9fb5 100644 --- a/TheGameExtreme/model/deck/ClassicDeck.cs +++ b/TheGameExtreme/model/deck/ClassicDeck.cs @@ -6,11 +6,13 @@ namespace TheGameExtreme.model.deck { public class ClassicDeck : Deck { - public ClassicDeck() + public ClassicDeck(int nbCard, int borneMin, int borneMax) : base(nbCard) { - for (int i = 2; i <= 99; i++) + Random random = new Random(); + while (deck.Count < nbCard && deck.Count < (borneMax - borneMin)) { - deck.Add(new ClassicCard(i)); + int value = random.Next(borneMin, borneMax); + InsertionDichotomique(deck, 0, deck.Count-1, new ClassicCard(value)); } } } diff --git a/TheGameExtreme/model/deck/DecimalDeck.cs b/TheGameExtreme/model/deck/DecimalDeck.cs deleted file mode 100644 index 91c3860..0000000 --- a/TheGameExtreme/model/deck/DecimalDeck.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using TheGameExtreme.model.card; -using TheGameExtreme.model.card.cardType; - -namespace TheGameExtreme.model.deck -{ - public class DecimalDeck : Deck - { - public DecimalDeck() - { - for (decimal i = 0.02m; i <= 0.99m; i += 0.01m) - { - deck.Add(new ClassicCard(i)); - } - } - } -} diff --git a/TheGameExtreme/model/deck/Deck.cs b/TheGameExtreme/model/deck/Deck.cs index 9ea5c98..3b07b7b 100644 --- a/TheGameExtreme/model/deck/Deck.cs +++ b/TheGameExtreme/model/deck/Deck.cs @@ -8,6 +8,12 @@ namespace TheGameExtreme.model.deck { protected List deck = new List(); + protected int nbCard; + + protected Deck(int nbCard) + { + this.nbCard = nbCard; + } public int size() { @@ -74,36 +80,6 @@ namespace TheGameExtreme.model.deck 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/DizaineDeck.cs b/TheGameExtreme/model/deck/DizaineDeck.cs index ed7e5ab..0f5dc8e 100644 --- a/TheGameExtreme/model/deck/DizaineDeck.cs +++ b/TheGameExtreme/model/deck/DizaineDeck.cs @@ -1,16 +1,19 @@ using System; -using TheGameExtreme.model.card; using TheGameExtreme.model.card.cardType; namespace TheGameExtreme.model.deck { public class DizaineDeck : Deck { - public DizaineDeck() + public DizaineDeck(int nbCard, decimal borneMin, decimal borneMax) : base(nbCard) { - for (decimal i = -4.9m; i <= 4.9m; i += 0.1m) + Random random = new Random(); + int borneMinRandom = (int)(borneMin * 10); + int borneMaxRandom = (int)(borneMax * 10); + while (deck.Count < nbCard && deck.Count < (borneMaxRandom - borneMinRandom)) { - deck.Add(new ClassicCard(i)); + decimal value = (decimal)(random.Next(borneMinRandom, borneMaxRandom)) / 10; + InsertionDichotomique(deck, 0, deck.Count-1, new ClassicCard(value)); } } } diff --git a/TheGameExtreme/model/deck/ExtremeDeck.cs b/TheGameExtreme/model/deck/ExtremeDeck.cs index 9216f13..f204823 100644 --- a/TheGameExtreme/model/deck/ExtremeDeck.cs +++ b/TheGameExtreme/model/deck/ExtremeDeck.cs @@ -13,7 +13,7 @@ namespace TheGameExtreme.model.deck private List threeCard; private Random random = new Random(); - public ExtremeDeck() + public ExtremeDeck(int nbCard) : base(nbCard) { endGame = new List(); threeCard = new List(); diff --git a/TheGameExtreme/model/deck/FractionDeck.cs b/TheGameExtreme/model/deck/FractionDeck.cs index 1b68d0f..72e86b2 100644 --- a/TheGameExtreme/model/deck/FractionDeck.cs +++ b/TheGameExtreme/model/deck/FractionDeck.cs @@ -9,21 +9,24 @@ namespace TheGameExtreme.model.deck /** * Fonction permettant de créer un jeu de carte pour jouer avec les fractions */ - public FractionDeck() + public FractionDeck(int nbCard, decimal borneMin, decimal borneMax) : base(nbCard) { Random random = new Random(); - for (int i = 1; i < 100; i ++) + while (deck.Count < nbCard) { - int numerateur = random.Next(1, 100); - int denominateur = random.Next(1, 100); - int pgcd = PGCD(numerateur, denominateur); - while (pgcd != 1) + int numerateur = random.Next(1, 99); + int denominateur = random.Next(1, 99); + if ((decimal)(numerateur / denominateur) > borneMin && (decimal)(numerateur / denominateur) < borneMax) { - numerateur /= pgcd; - denominateur /= pgcd; - pgcd = PGCD(numerateur, denominateur); + int pgcd = PGCD(numerateur, denominateur); + while (pgcd != 1) + { + numerateur /= pgcd; + denominateur /= pgcd; + pgcd = PGCD(numerateur, denominateur); + } + InsertionDichotomique(deck, 0, deck.Count - 1, new FractionCard(new Fraction(numerateur, denominateur))); } - InsertionDichotomique(deck, 0, deck.Count-1, new FractionCard(new Fraction(numerateur, denominateur))); } } diff --git a/TheGameExtreme/model/deck/MilliemeDeck.cs b/TheGameExtreme/model/deck/MilliemeDeck.cs index 0255801..decdb29 100644 --- a/TheGameExtreme/model/deck/MilliemeDeck.cs +++ b/TheGameExtreme/model/deck/MilliemeDeck.cs @@ -6,15 +6,15 @@ namespace TheGameExtreme.model.deck { public class MilliemeDeck : Deck { - public MilliemeDeck() + public MilliemeDeck(int nbCard, decimal borneMin, decimal borneMax) : base(nbCard) { - decimal d; Random random = new Random(); - - for (int i = -4999; i <= 4999; i += 100) + int borneMinRandom = (int)(borneMin * 1000); + int borneMaxRandom = (int)(borneMax * 1000); + while (deck.Count < nbCard && deck.Count < (borneMaxRandom - borneMinRandom)) { - d = (decimal)(random.Next(i, i + 100)) / 1000; - deck.Add(new ClassicCard(d)); + decimal value = (decimal)(random.Next(borneMinRandom, borneMaxRandom)) / 1000; + InsertionDichotomique(deck, 0, deck.Count-1, new ClassicCard(value)); } } } diff --git a/TheGameExtreme/model/deck/RelativeDeck.cs b/TheGameExtreme/model/deck/RelativeDeck.cs new file mode 100644 index 0000000..260bd8b --- /dev/null +++ b/TheGameExtreme/model/deck/RelativeDeck.cs @@ -0,0 +1,18 @@ +using System; +using TheGameExtreme.model.card.cardType; + +namespace TheGameExtreme.model.deck +{ + public class RelativeDeck : Deck + { + public RelativeDeck(int nbCard, int borneMin, int borneMax) : base(nbCard) + { + Random random = new Random(); + while (deck.Count < nbCard && deck.Count < (borneMax - borneMin)) + { + int value = random.Next(borneMin, borneMax); + InsertionDichotomique(deck, 0, deck.Count-1, new ClassicCard(value)); + } + } + } +} diff --git a/TheGameExtreme/model/deck/_50Range100Deck.cs b/TheGameExtreme/model/deck/_50Range100Deck.cs deleted file mode 100644 index 97cf127..0000000 --- a/TheGameExtreme/model/deck/_50Range100Deck.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using TheGameExtreme.model.card; -using TheGameExtreme.model.card.cardType; - -namespace TheGameExtreme.model.deck -{ - public class _50Range100Deck : Deck - { - public _50Range100Deck() - { - for (int i = -49; i <= 49; i++) - { - deck.Add(new ClassicCard(i)); - } - } - } -} diff --git a/TheGameExtreme/model/piles/ClassicPiles.cs b/TheGameExtreme/model/piles/ClassicPiles.cs index 7fdfbe1..a5d804d 100644 --- a/TheGameExtreme/model/piles/ClassicPiles.cs +++ b/TheGameExtreme/model/piles/ClassicPiles.cs @@ -15,11 +15,11 @@ namespace TheGameExtreme.model.piles { if (i < (nbPile * 0.5)) { - ListOrderedStacks[i].Push(new ClassicCard(1)); + ListOrderedStacks[i].Push(new ClassicCard(0m)); } else { - ListOrderedStacks[i].Push(new ClassicCard(100)); + ListOrderedStacks[i].Push(new ClassicCard(100m)); } } } diff --git a/TheGameExtreme/model/piles/FractionPiles.cs b/TheGameExtreme/model/piles/FractionPiles.cs index d09c4f3..b1dd7ee 100644 --- a/TheGameExtreme/model/piles/FractionPiles.cs +++ b/TheGameExtreme/model/piles/FractionPiles.cs @@ -11,11 +11,11 @@ namespace TheGameExtreme.model.piles { if (i < (nbPile * 0.5)) { - ListOrderedStacks[i].Push(new ClassicCard(0)); + ListOrderedStacks[i].Push(new ClassicCard(0m)); } else { - ListOrderedStacks[i].Push(new ClassicCard(100)); + ListOrderedStacks[i].Push(new ClassicCard(50m)); } } } diff --git a/TheGameExtreme/model/piles/_50Range100Piles.cs b/TheGameExtreme/model/piles/PilesMoins50To50.cs similarity index 80% rename from TheGameExtreme/model/piles/_50Range100Piles.cs rename to TheGameExtreme/model/piles/PilesMoins50To50.cs index ccdacc9..f7fb350 100644 --- a/TheGameExtreme/model/piles/_50Range100Piles.cs +++ b/TheGameExtreme/model/piles/PilesMoins50To50.cs @@ -3,19 +3,19 @@ using TheGameExtreme.model.card.cardType; namespace TheGameExtreme.model.piles { - public class _50Range100Piles : Piles + public class PilesMoins51To51 : Piles { - public _50Range100Piles(int nbPile) : base(nbPile) + public PilesMoins51To51(int nbPile) : base(nbPile) { for (int i = 0; i < nbPile; i++) { if (i < (nbPile * 0.5)) { - ListOrderedStacks[i].Push(new ClassicCard(-50)); + ListOrderedStacks[i].Push(new ClassicCard(-50m)); } else { - ListOrderedStacks[i].Push(new ClassicCard(50)); + ListOrderedStacks[i].Push(new ClassicCard(50m)); } } } diff --git a/TheGameExtreme/view/GamePreparationPage.xaml.cs b/TheGameExtreme/view/GamePreparationPage.xaml.cs index 17d8ffa..28d81f9 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", "dizaines", "centaines", "millièmes", "fractionnées" }; public List listNbStack = new List { 4, 6, 8 }; public List listNbCard = new List { 100, 80, 60, 40 }; @@ -69,7 +69,7 @@ namespace TheGameExtreme.view IOGamePreparation.SaveParameterGamePreparationGameModeValue(SelectMode.SelectedIndex); IOGamePreparation.SaveParameterGamePreparationNbStacks(SelectNbStack.SelectedIndex); IOGamePreparation.SaveParameterGamePreparationNbCards(SelectNbCard.SelectedIndex); - await Navigation.PushAsync(new MainPage(playersNames, (int)SelectNbStack.SelectedItem, (int)SelectMode.SelectedIndex)); + await Navigation.PushAsync(new MainPage(playersNames, (int)SelectNbStack.SelectedItem, (int)SelectMode.SelectedIndex, (int)SelectNbCard.SelectedItem)); } private void ChangedPseudo(object sender, EventArgs args) diff --git a/TheGameExtreme/view/HomePage.xaml b/TheGameExtreme/view/HomePage.xaml index 66da2c4..80cc151 100644 --- a/TheGameExtreme/view/HomePage.xaml +++ b/TheGameExtreme/view/HomePage.xaml @@ -74,8 +74,8 @@ Source="imagesRules.png" Grid.Column="0" Grid.Row="0" - HeightRequest="40" - WidthRequest="25" + HeightRequest="50" + WidthRequest="35" VerticalOptions="CenterAndExpand" HorizontalOptions="Start" Clicked="Rules_Clicked" diff --git a/TheGameExtreme/view/MainPage.xaml b/TheGameExtreme/view/MainPage.xaml index bcd6a98..f4efc99 100644 --- a/TheGameExtreme/view/MainPage.xaml +++ b/TheGameExtreme/view/MainPage.xaml @@ -26,7 +26,8 @@ + Grid.Column="1" + VerticalOptions="CenterAndExpand">