int AddPlayersToHandAndGetSmallBlindPosition(string smallBlindPlayerName) { int smallBlindPosition = 0; int relativeSeatNumber = 0; foreach (KeyValuePair <int, PlayerSeatsParser.PlayerData> playerSeat in PlayerSeatsParser.PlayerSeats) { IAquiredPokerPlayer aquiredPlayer = _aquiredPlayerMake.New .InitializeWith(playerSeat.Value.Name, playerSeat.Value.Stack); aquiredPlayer.RelativeSeatNumber = relativeSeatNumber; aquiredPlayer.SeatNumber = playerSeat.Key; if (aquiredPlayer.Name == smallBlindPlayerName) { smallBlindPosition = aquiredPlayer.RelativeSeatNumber; } AquiredPokerHand.AddPlayer(aquiredPlayer); relativeSeatNumber++; } return(smallBlindPosition); }
void ParsePlayers(string smallBlindPlayerName) { int smallBlindPosition = AddPlayersToHandAndGetSmallBlindPosition(smallBlindPlayerName); SetPlayersPositionsRelativeTo(smallBlindPosition); ParsePlayersHoleCards(); ParsePlayersActions(); AquiredPokerHand.SortPlayersByPosition(); }
RelativeRatioResult ConvertPreflopHeadsUpHand() { _stub .Value(For.HoleCards).Is(string.Empty); const double smallBlind = 1.0; const double bigBlind = 2.0; const double pot = smallBlind + bigBlind; const double toCall = bigBlind; const int totalPlayers = 2; const int smallBlindPosition = 0; const int bigBlindPosition = 1; var action1 = new AquiredPokerAction(ActionTypes.C, smallBlind); const double relativeRatio1 = smallBlind / pot; const double pot1 = pot + smallBlind; var action2 = new AquiredPokerAction(ActionTypes.R, toCall * 2); const double relativeRatio2 = 2; const double pot2 = pot1 + (toCall * 2); var action3 = new AquiredPokerAction(ActionTypes.R, toCall * 2 * 3); const double relativeRatio3 = 3; const double pot3 = pot2 + (toCall * 2 * 3); var action4 = new AquiredPokerAction(ActionTypes.C, toCall * 2 * 3); const double relativeRatio4 = (toCall * 2 * 3) / pot3; IAquiredPokerPlayer player1 = new AquiredPokerPlayer( _stub.Some <long>(), smallBlindPosition, _stub.Out <string>(For.HoleCards)) .AddRound( new AquiredPokerRound() .Add(action1) .Add(action3)); player1.Name = "player1"; player1.Position = smallBlindPosition; IAquiredPokerPlayer player2 = new AquiredPokerPlayer( _stub.Some <long>(), bigBlindPosition, _stub.Out <string>(For.HoleCards)) .AddRound( new AquiredPokerRound() .Add(action2) .Add(action4)); player2.Name = "player2"; player2.Position = bigBlindPosition; IAquiredPokerHand aquiredHand = new AquiredPokerHand( _stub.Valid(For.Site, "site"), _stub.Out <ulong>(For.GameId), _stub.Out <DateTime>(For.TimeStamp), smallBlind, bigBlind, totalPlayers) .AddPlayer(player1) .AddPlayer(player2); IConvertedPokerHand convertedHand = new ConvertedPokerHand(aquiredHand) .InitializeWith(aquiredHand) .AddPlayersFrom(aquiredHand, pot, _convertedPlayerMake); _converter .InitializeWith(aquiredHand, convertedHand, pot, toCall) .ConvertPreflop(); var player1FirstRound = convertedHand[smallBlindPosition][Streets.PreFlop]; var player2FirstRound = convertedHand[bigBlindPosition][Streets.PreFlop]; return(new RelativeRatioResult(convertedHand, player1FirstRound, player2FirstRound, relativeRatio1, relativeRatio2, relativeRatio3, relativeRatio4)); }
RelativeRatioResult ConvertPreflopThreePlayersHand() { _stub .Value(For.HoleCards).Is(string.Empty); const double smallBlind = 1.0; const double bigBlind = 2.0; const double pot = smallBlind + bigBlind; const int totalPlayers = 3; const int smallBlindPosition = 0; const int bigBlindPosition = 1; const int buttonPosition = 2; var action1 = new AquiredPokerAction(ActionTypes.B, bigBlind); const double relativeRatio1 = bigBlind / pot; const double pot1 = pot + bigBlind; var action2 = new AquiredPokerAction(ActionTypes.C, bigBlind); const double relativeRatio2 = bigBlind / pot1; const double pot2 = pot1 + bigBlind; var action3 = new AquiredPokerAction(ActionTypes.R, bigBlind * 3); const double relativeRatio3 = 3; const double pot3 = pot2 + (bigBlind * 3); var action4 = new AquiredPokerAction(ActionTypes.R, bigBlind * 3 * 2); const double relativeRatio4 = 2; const double pot4 = pot3 + (bigBlind * 3 * 2); var action5 = new AquiredPokerAction(ActionTypes.C, bigBlind * 3 * 2); const double relativeRatio5 = (bigBlind * 2 * 3) / pot4; var action6 = new AquiredPokerAction(ActionTypes.F, 1.0); // Small Blind IAquiredPokerPlayer player1 = new AquiredPokerPlayer( _stub.Some <long>(), smallBlindPosition, _stub.Out <string>(For.HoleCards)) // Preflop .AddRound( new AquiredPokerRound() .Add(new AquiredPokerAction(ActionTypes.C, 0.5))) // Flop .AddRound( new AquiredPokerRound() .Add(action1) .Add(action4)); player1.Name = "player1"; player1.Position = smallBlindPosition; // Big Blind IAquiredPokerPlayer player2 = new AquiredPokerPlayer( _stub.Some <long>(), bigBlindPosition, _stub.Out <string>(For.HoleCards)) // Preflop .AddRound( new AquiredPokerRound() .Add(new AquiredPokerAction(ActionTypes.X, 1.0))) // Flop .AddRound( new AquiredPokerRound() .Add(action2) .Add(action5)); player2.Name = "player2"; player2.Position = bigBlindPosition; // Button IAquiredPokerPlayer player3 = new AquiredPokerPlayer( _stub.Some <long>(), buttonPosition, _stub.Out <string>(For.HoleCards)) // Preflop .AddRound( new AquiredPokerRound() .Add(new AquiredPokerAction(ActionTypes.C, 1.0))) // Flop .AddRound( new AquiredPokerRound() .Add(action3) .Add(action6)); player3.Name = "player3"; player3.Position = buttonPosition; IAquiredPokerHand aquiredHand = new AquiredPokerHand( _stub.Valid(For.Site, "site"), _stub.Out <ulong>(For.GameId), _stub.Out <DateTime>(For.TimeStamp), smallBlind, bigBlind, totalPlayers) .AddPlayer(player1) .AddPlayer(player2) .AddPlayer(player3); IConvertedPokerHand convertedHand = new ConvertedPokerHand(aquiredHand) .AddPlayersFrom(aquiredHand, pot, _convertedPlayerMake); _converter .InitializeWith(aquiredHand, convertedHand, pot, bigBlind) .ConvertPreflop(); // Reset Values _converter.PotProp = pot; _converter.ToCallProp = bigBlind; _converter.ConvertFlopTurnAndRiver(); IConvertedPokerRound player1FlopRound = convertedHand[smallBlindPosition][Streets.Flop]; IConvertedPokerRound player2FlopRound = convertedHand[bigBlindPosition][Streets.Flop]; IConvertedPokerRound player3FlopRound = convertedHand[buttonPosition][Streets.Flop]; return(new RelativeRatioResult( convertedHand, player1FlopRound, player2FlopRound, player3FlopRound, relativeRatio1, relativeRatio2, relativeRatio3, relativeRatio4, relativeRatio5)); }