using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BlackjackClasses { public class Player { private List _hand; public List Hand { get { return _hand; } set { _hand = value; } } private int _dummyInt; public int dummyScore { set { _dummyInt = value; } get { return _dummyInt; } } public int Score { get { return CalculateScore(); } } public bool isBust { get { return (CalculateScore() > 21); } } public Player() { _hand = new List(); } public Player(List paramHand) { _hand = paramHand; } //add ace logic public int CalculateScore() { if (_hand.Exists(delegate(Card c) { return c.FaceValue.Equals(Card.CardValues.Ace); })) { List playerHand = new List(_hand); int aceCount = playerHand.Count(delegate(Card c) { return c.FaceValue.Equals(Card.CardValues.Ace); }); playerHand.RemoveAll(delegate(Card c) { return c.FaceValue.Equals(Card.CardValues.Ace); }); int sum = playerHand.Sum(delegate(Card c) { return c.RealValue; }); for (int i = 0; i < aceCount; i++) { if ((sum + 11) > 21) sum++; else sum += 11; } return sum; } else { //no Aces, so return the Real values of the cards return _hand.Sum(delegate(Card c) { return c.RealValue; });} } } }