private int GetAmountToBet() { int newBet = BettingStrategy.GetAmountToBet(); CurrentBet = newBet; return(CurrentBet); }
public static decimal DetermineBet(decimal currentBet, BettingStrategy bettingStrategy, bool playerWins, decimal currentFunds, decimal targetFunds) { switch (bettingStrategy) { case BettingStrategy.Steady: return(currentBet); case BettingStrategy.DoubleOnLose: return(playerWins ? currentBet : currentBet * 2); case BettingStrategy.DoubleOnWin: return(playerWins ? currentBet * 2 : currentBet); case BettingStrategy.IncreaseOnLose: return(playerWins ? currentBet : currentBet + 1); case BettingStrategy.IncreaseOnWin: return(playerWins ? currentBet + 1 : currentBet); case BettingStrategy.Martingale: return(targetFunds - currentFunds); } return(0); }
public void CurrentBet10_CallBettingStragyHelperForEachStrategy( BettingStrategy bettingStrategy, bool isWinner, decimal expectedNewBetAmount) { // Act decimal betAmount = BettingStrategyHelper.DetermineBet(10, bettingStrategy, isWinner, 1000, 2000); // Assert Assert.Equal(expectedNewBetAmount, betAmount); }
public void RecordWin(bool hasBlackjack) { if (hasBlackjack) { Funds += CurrentBet + CurrentBet * 1.5; } else { Funds += CurrentBet * 2; } BettingStrategy.UpdateForWin(); Statistics.RecordWin(); }
public async Task RunAnalysis_Steady_ReturnsRemainingPot(BettingStrategy bettingStrategy) { // Arrange var logger = Substitute.For <ILogger <RunAnalysis> >(); var playHand = new PlayHand(); var runAnalysis = new RunAnalysis(logger, playHand); var analysisConfiguration = new AnalysisConfiguration() { StartingAnte = 1, BettingStrategy = bettingStrategy, DeckCountPerShoe = 4, PlayerFunds = 10, TargetFunds = 11, AvailableActions = TestHelper.BuildAvailableActionsAlwaysStand() }; var updateProgress = Substitute.For <IUpdateProgress>(); // Act decimal result = await runAnalysis.Run(analysisConfiguration, updateProgress); // Assert Assert.True(result <= analysisConfiguration.TargetFunds + 1); }
public void RecordLoss() { BettingStrategy.UpdateForLoss(); Statistics.RecordLoss(); }
public void ResetBettingStrategy() { BettingStrategy.Reset(); }
public void RecordPush() { BettingStrategy.UpdateForPush(); Statistics.RecordPush(); }