public PackUnit CreatePack(string packTitle = null, PackTypeVariations packType = PackTypeVariations.cards52) { PackUnit packUnit = _packFactory.Create(packTitle, packType); _packStorage.Add(packUnit); return packUnit; }
public void AddPackType(PackTypeVariations definitionOfPack, int minValue, int maxValue, int maxSuit = 4) { _packVariations.Add(definitionOfPack, new TSingle() { MinCardValue = minValue, MaxCardValue = maxValue, MaxCardSuit = maxSuit }); }
public bool RemovePackType(PackTypeVariations definitionOfPack) { if (_packVariations.TryGetValue(definitionOfPack, out _)) { return(_packVariations.Remove(definitionOfPack)); } else { throw new ArgumentException("тип колоды не определен"); } }
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("тип колоды не определен"); } }
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("тип колоды не определен"); } }
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); }