/// <summary> /// Performs the action. /// </summary> /// <param name="action">The action.</param> /// <param name="shoe">The shoe.</param> /// <returns></returns> public bool PerformAction(BjActionsEnum action, BjShoe shoe) { if (GetActiveHand == null) { return(false); } var success = false; switch (action) { case BjActionsEnum.DealNewHand: success = true; break; case BjActionsEnum.Hit: success = IsHitSuccess(GetActiveHand, shoe); break; case BjActionsEnum.Stand: GetActiveHand.IsStanding = true; success = true; break; case BjActionsEnum.DoubleDown: if (CurrentHands.Count >= MaxHands) { return(false); } success = IsDoubleDownSuccess(GetActiveHand, shoe); if (success) { Chips = Chips - GetActiveHand.Bet; } GetActiveHand.IsDoubleDown = success; break; case BjActionsEnum.Split: if (CurrentHands.Count >= MaxHands) { return(false); } success = IsSplitSuccess(GetActiveHand, shoe); if (success) { Chips = Chips - GetActiveHand.Bet; } break; } Log.Info($"PerformAction:hand={GetActiveHand},action={action},success={success}"); return(success); }
/// <summary> /// Shoes the has cards to complete action. /// </summary> /// <param name="action">The action.</param> /// <returns></returns> public bool ShoeHasCardsToCompleteAction(BjActionsEnum action) { switch (action) { case BjActionsEnum.Hit: return(ShoeCards.Count >= 1); case BjActionsEnum.Stand: return(true); case BjActionsEnum.DoubleDown: return(ShoeCards.Count >= 1); case BjActionsEnum.Split: return(ShoeCards.Count >= 2); } return(false); }