public void PrepareNewTree() { if (_settings.EvaluationStyle == AiMode.ExpectiMax && _pokerGame.CurrentRoundNumber() > 1) { _expectiMaxDecisionMaking.CreateNewTree(_pokerGame); } }
public PlayerAction GetNextAction() { EVCalculator ev = new EVCalculator(_pokerGame, _pokerGame.Settings); List <Card> evalCards = GetCardsToEvaluate(); List <double> ExpectedValues; double mtcWin = 0, mtcLoss = 0; if (_pokerGame.CurrentRoundNumber() > 1) { ExpectedValues = new List <double>(ev.CalculateMonteCarlo(_player.Cards, _pokerGame.Hand, _pokerGame.Settings)); mtcWin = ExpectedValues[0]; mtcLoss = ExpectedValues[1]; } if (_pokerGame.CurrentRoundNumber() == 1) { return(PreFlop()); } if (_pokerGame.CurrentRoundNumber() == 2 || _pokerGame.CurrentRoundNumber() == 3) { return(FlopTurn(mtcWin, mtcLoss)); } if (_pokerGame.CurrentRoundNumber() == 4) { return(River(mtcWin, mtcLoss)); } return(CheckFold()); }
public void CreateNewTree(PokerGame game) { TreeConstructor tc = new TreeConstructor(game, _data); _treeRoot = tc.CreateTree(game.CurrentRoundNumber()); _currentNode = _treeRoot; _currentTarget = null; _expectedAction = PlayerAction.None; }
public void PrepareNewTree() { _pokerTree = new PokerTree(_pokerGame.CurrentHand().Street, _player, _settings, _pokerGame.Players[0].PreviousAction, _pokerGame.CurrentRoundNumber()); }
private void MainUpdate() { if (_prevRound < _game.CurrentRoundNumber()) { RoundUpdate(); } TurnUpdate(); }