Esempio n. 1
0
        public PackUnit CreatePack(string packTitle = null, PackTypeVariations packType = PackTypeVariations.cards52)
        {
            PackUnit packUnit = _packFactory.Create(packTitle, packType);
            _packStorage.Add(packUnit);

            return packUnit;
        }
Esempio n. 2
0
 public void AddPackType(PackTypeVariations definitionOfPack, int minValue, int maxValue, int maxSuit = 4)
 {
     _packVariations.Add(definitionOfPack, new TSingle()
     {
         MinCardValue = minValue, MaxCardValue = maxValue, MaxCardSuit = maxSuit
     });
 }
Esempio n. 3
0
 public bool RemovePackType(PackTypeVariations definitionOfPack)
 {
     if (_packVariations.TryGetValue(definitionOfPack, out _))
     {
         return(_packVariations.Remove(definitionOfPack));
     }
     else
     {
         throw new ArgumentException("тип колоды не определен");
     }
 }
Esempio n. 4
0
 public IEnumerable <string> GetAvailableCardSuits(PackTypeVariations definitionOfPack)
 {
     if (_packVariations.TryGetValue(definitionOfPack, out var singlePack))
     {
         return(Enumerable
                .Range(1, singlePack.MaxCardSuit)
                .Select(cardIndex => singlePack.GetCardSuitById(cardIndex)));
     }
     else
     {
         throw new ArgumentException("тип колоды не определен");
     }
 }
Esempio n. 5
0
 public IEnumerable <string> GetAvailableCardValues(PackTypeVariations definitionOfPack)
 {
     if (_packVariations.TryGetValue(definitionOfPack, out var concreteSinglePack))
     {
         int lastIndexofRangeInterval = concreteSinglePack.MaxCardValue + 1 - concreteSinglePack.MinCardValue;
         return(Enumerable
                .Range(concreteSinglePack.MinCardValue, lastIndexofRangeInterval)
                .Select(cardIndex => concreteSinglePack.GetCardNameById(cardIndex)));
     }
     else
     {
         throw new ArgumentException("тип колоды не определен");
     }
 }
Esempio n. 6
0
        public PackUnit Create(string packTitle = null, PackTypeVariations packType = PackTypeVariations.cards52)
        {
            var cardValues = typesContainer.GetAvailableCardValues(packType).ToArray(); //диапазон значение 2-туз
            var cardSuits  = typesContainer.GetAvailableCardSuits(packType).ToArray();  //диапазон мастей: 4 шт

            var cardArray = new Card[cardValues.Length * cardSuits.Length];

            cardArray = cardSuits //декартово произведение
                        .SelectMany(suit => cardValues.Select(card => new Card()
            {
                Name = card, Suit = suit
            }))
                        .ToArray();

            var resultPack = new PackUnit(cardArray, packTitle);

            return(resultPack);
        }