using System; namespace BlackjackClasses { public class Card : IComparable { public enum CardSuits { Clubs = 1, Spades, Hearts, Diamonds } public enum CardValues { Ace = 1, Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King } private readonly CardValues _faceValue; private readonly CardSuits _cardSuit; private readonly int _realValue; public CardValues FaceValue { get { return _faceValue; } } public CardSuits CardSuit { get { return _cardSuit; } } public int RealValue { get { return _realValue; } } public Card(CardSuits paramSuit, CardValues paramValue) { _cardSuit = paramSuit; _faceValue = paramValue; _realValue = ((int)paramValue > 10 ? 10 : (int)paramValue); } public override string ToString() { return FaceValue + " of " + CardSuit + " RealValue: " + RealValue; } #region IComparable Members public int CompareTo(object obj) { var c = (Card)obj; if (FaceValue == c.FaceValue) return CardSuit.CompareTo(c.CardSuit); return FaceValue.CompareTo(c.FaceValue); } #endregion } }