public void PairSplittingLessThanTest() { PlayerState expectedState = PlayerState.Split; TenCountStrategy player = new TenCountStrategy { Chips = 500, hand = new Hand { cards = new List <Card>() { new Card(Suit.Club, Face.Nine), new Card(Suit.Diamond, Face.Nine) } }, Count = new List <int>() { 410, 100 } //Count = 1.6 }; player.UpdateOthersOverTenRatio(); player.hand.SetHandValues(); PlayerState state = (player.React(dealersUpCard: new Card(Suit.Spade, Face.Nine), ref player.CurrentState, player.hand, new List <int>())); Assert.AreEqual(expectedState, state); }
public void HardDoublingEqualToTest() { PlayerState expectedState = PlayerState.DoubleDown; TenCountStrategy player = new TenCountStrategy { Chips = 500, hand = new Hand { cards = new List <Card>() { new Card(Suit.Club, Face.Three), new Card(Suit.Club, Face.Six) } }, Count = new List <int>() { 160, 100 } //Count = 1.6 }; player.UpdateOthersOverTenRatio(); player.hand.SetHandValues(); PlayerState state = (player.React(dealersUpCard: new Card(Suit.Club, Face.Eight), ref player.CurrentState, player.hand, new List <int>())); Assert.AreEqual(expectedState, state); }
public void CountTest() { int expectedCount = 13; Player player = new TenCountStrategy(); Deck deck = new Deck(52); List <Card> burntCards = new List <Card>(); List <Card> deckToCardsList = deck.Cards.ToList(); burntCards.Add(new Card(Suit.Club, Face.King)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Club && x.Face == Face.King); burntCards.Add(new Card(Suit.Club, Face.Ten)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Club && x.Face == Face.Ten); burntCards.Add(new Card(Suit.Club, Face.Queen)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Club && x.Face == Face.Queen); burntCards.Add(new Card(Suit.Club, Face.Nine)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Club && x.Face == Face.Nine); burntCards.Add(new Card(Suit.Club, Face.Five)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Club && x.Face == Face.Five); burntCards.Add(new Card(Suit.Club, Face.Ace)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Club && x.Face == Face.Ace); deck.Cards.Clear(); foreach (var card in deckToCardsList) { deck.Cards.Push(card); } player.hand.SetHandValues(); int count = player.UpdateCount(deck, burntCards, null).Last(); Assert.AreEqual(expectedCount, count); }
//(A,4) against 3 with a count of 2 //Should not double down if count > 1.9 public void SoftDoublingGreaterThanTest() { PlayerState expectedState = PlayerState.DoubleDown; TenCountStrategy player = new TenCountStrategy { Chips = 500, hand = new Hand { cards = new List <Card>() { new Card(Suit.Club, Face.Ace), new Card(Suit.Club, Face.Four) } }, Count = new List <int>() { 200, 100 } }; player.UpdateOthersOverTenRatio(); player.hand.SetHandValues(); PlayerState state = (player.React(dealersUpCard: new Card(Suit.Club, Face.Three), ref player.CurrentState, player.hand, new List <int>())); Assert.AreNotEqual(expectedState, state); }
public void BetMaxTest() { int expectedBet = 100; Player player = new TenCountStrategy(); Deck deck = new Deck(52); List <Card> burntCards = new List <Card>(); List <Card> deckToCardsList = deck.Cards.ToList(); burntCards.Add(new Card(Suit.Club, Face.Two)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Club && x.Face == Face.Two); burntCards.Add(new Card(Suit.Spade, Face.Two)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Spade && x.Face == Face.Two); burntCards.Add(new Card(Suit.Club, Face.Three)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Club && x.Face == Face.Three); burntCards.Add(new Card(Suit.Spade, Face.Three)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Spade && x.Face == Face.Three); burntCards.Add(new Card(Suit.Club, Face.Four)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Club && x.Face == Face.Four); burntCards.Add(new Card(Suit.Spade, Face.Four)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Spade && x.Face == Face.Four); burntCards.Add(new Card(Suit.Club, Face.Five)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Club && x.Face == Face.Five); burntCards.Add(new Card(Suit.Spade, Face.Five)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Spade && x.Face == Face.Five); burntCards.Add(new Card(Suit.Club, Face.Six)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Club && x.Face == Face.Six); burntCards.Add(new Card(Suit.Spade, Face.Six)); deckToCardsList.RemoveAll(x => x.Suit == Suit.Spade && x.Face == Face.Six); deck.Cards.Clear(); foreach (var card in deckToCardsList) { deck.Cards.Push(card); } player.hand.SetHandValues(); player.UpdateCount(deck, burntCards, null).First(); int bet = player.CalculateBet(10, 100); Assert.AreEqual(expectedBet, bet); }