using System; using TheGameExtreme.model.card.cardType; namespace TheGameExtreme.model.deck { public class FractionDeck : Deck { /** * Fonction permettant de créer un jeu de carte pour jouer avec les fractions */ 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))); } } /** * Fonction permettant de retourner le plus grand diviseur commun à deux nombres * Premier nombre * Deuxième nombre * Plus grand diviseur commun */ private int PGCD(int a, int b) { int temp = a % b; if (temp == 0) return b; return PGCD(b, temp); } } }