void OnPocket(ref CardSet hand, CalculateAverageHsParam param) { uint handValue = CardSetEvaluator.Evaluate(ref hand); int ordinal = HandValueToOrdinal.GetOrdinal7(handValue); param.Sum += ordinal; param.Count++; }
double CalculateAverageHVO(int[] board) { CardSet boardCs = StdDeck.Descriptor.GetCardSet(board); CalculateAverageHsParam param = new CalculateAverageHsParam(); int toDealCount = 7 - board.Length; CardEnum.Combin(StdDeck.Descriptor, toDealCount, boardCs, CardSet.Empty, OnPocket, param); Assert.AreEqual(EnumAlgos.CountCombin(52 - board.Length, toDealCount), param.Count); return(param.Sum / param.Count); }