Exemple #1
0
 /// <summary>
 /// Заполняет колоду начиная с указанного достоинства карты
 /// </summary>
 /// <param name="startRank"></param>
 protected void CreateCards(PlayingCardRank startRank)
 {
     for (int i = (int)startRank, id = 1; i <= EnumUtils.MaxValue <PlayingCardRank>(); i++)
     {
         for (int j = EnumUtils.MinValue <PlayingCardSuit>(); j <= EnumUtils.MaxValue <PlayingCardSuit>(); id++, j++)
         {
             _cards.Add(new PlayingCard(id, (PlayingCardSuit)j, (PlayingCardRank)i));
         }
     }
 }
Exemple #2
0
        public FirstMove(IReadOnlyList <PlayingCard> cards, PlayingCardRank rank, Guid initiatorId)
        {
            if (cards == null)
            {
                throw new ArgumentNullException(nameof(cards));
            }

            Cards       = cards;
            Rank        = rank;
            InitiatorId = initiatorId;
        }
Exemple #3
0
        /// <summary>
        /// Build a standard deck of 52 playing cards
        /// </summary>
        /// <returns></returns>
        public static IList <PlayingCard> BuildDeck()
        {
            var deck = new List <PlayingCard>(52);

            for (PlayingCardSuit suit = PlayingCardSuit.Spades;
                 suit <= PlayingCardSuit.Clubs; suit++)
            {
                for (PlayingCardRank rank = PlayingCardRank.Ace;
                     rank <= PlayingCardRank.King; rank++)
                {
                    deck.Add(new PlayingCard(rank, suit));
                }
            }
            return(deck);
        }
Exemple #4
0
        public static string ToFriendlyString(this PlayingCardRank rank)
        {
            string str;

            if (rank == PlayingCardRank.None)
            {
                str = rank.ToString();
            }
            else if (rank == PlayingCardRank.Jack ||
                     rank == PlayingCardRank.Queen ||
                     rank == PlayingCardRank.King ||
                     rank == PlayingCardRank.Ace ||
                     rank == PlayingCardRank.Joker)
            {
                str = rank.ToString();
            }
            else
            {
                var val = (int)rank;
                str = val.ToString();
            }

            return(str);
        }
 public PlayingCard(int id, PlayingCardSuit suit, PlayingCardRank rank)
 {
     Id   = id;
     Suit = suit;
     Rank = rank;
 }
 public PlayingCard(PlayingCardRank rank, PlayingCardSuit suit)
 {
     Rank = rank;
     Suit = suit;
 }
Exemple #7
0
 /// <summary>
 /// Определяет входил ли в данный тип колоды указанный rank
 /// </summary>
 /// <param name="rank"></param>
 /// <returns></returns>
 public abstract bool IsRankContains(PlayingCardRank rank);
 public static string AsString(this PlayingCardRank value) => Strings[value];
Exemple #9
0
 /// <summary>
 /// Creates a playing card.
 /// </summary>
 /// <param name="options">The options on how cards are played.</param>
 /// <param name="suit">The suit of the card.</param>
 /// <param name="rank">The rank of the card.</param>
 internal PlayingCard(PlayingCardOptions options, PlayingCardSuit suit, PlayingCardRank rank)
 {
     Rank    = rank;
     Suit    = suit;
     Options = options;
 }
 public override bool IsRankContains(PlayingCardRank rank)
 {
     return(rank >= PlayingCardRank.Two);
 }
 public PlayingCard(PlayingCardSuit suit, PlayingCardRank rank)
 {
     Suit = suit;
     Rank = rank;
 }