static void Main(string[] agrs) { Console.WriteLine("The program demonstrates how different " + "blackjack strategies affect a player's balance.\n"); int gameCounter = 10000; // WinningStrategyBot statistic var winningBot = new WinningStrategyBot(x => x > 40, 1000); var collector = new StatisticCollector(winningBot, "Winning strategy"); collector.Collect(gameCounter); collector.Show(); // HiLowStrategyBot statistic var hiLowBot = new HiLowStrategyBot((x) => x > 40, 1000); collector = new StatisticCollector(hiLowBot, "HiLow strategy"); collector.Collect(gameCounter); collector.Show(); // HiOptIIStrategyBot statistic var hiOptIIBot = new HiOptIIStrategyBot((x) => x > 40, 1000); collector = new StatisticCollector(hiOptIIBot, "HiOptIIStrategyBot"); collector.Collect(gameCounter); collector.Show(); Console.WriteLine("That's all! Thank you!"); return; }
public void ConstructorTest() { // first case var firstBot = new HiOptIIStrategyBot(x => false, initialBet); Assert.IsFalse(firstBot.IsLeave()); Assert.IsTrue(firstBot.Hands != null); Assert.IsTrue(firstBot.Cash == initialBet); Assert.IsTrue(firstBot.Flag == PlayerState.Play); // second case var secondBot = new HiLowStrategyBot(x => false, initialBet); Assert.IsFalse(secondBot.IsLeave()); Assert.IsTrue(secondBot.Hands != null); Assert.IsTrue(secondBot.Cash == initialBet); Assert.IsTrue(secondBot.Flag == PlayerState.Play); }
public void ConstructorTest() { // first case int minBet = 6; var firstBot = new WinningStrategyBot(); var firstGameTable = new GameTable(firstBot, minBet); Assert.IsNotNull(firstGameTable); Assert.IsNotNull(firstGameTable.Dealer); Assert.IsNotNull(firstGameTable.Player); Assert.IsNotNull(firstGameTable.GameDeck); Assert.AreSame(firstBot, firstGameTable.Player); Assert.AreEqual(firstGameTable.MinBet, minBet); // second case var secondBot = new HiLowStrategyBot(); var secondGameTable = new GameTable(secondBot, minBet); Assert.IsNotNull(secondGameTable); Assert.IsNotNull(secondGameTable.Dealer); Assert.IsNotNull(secondGameTable.Player); Assert.IsNotNull(secondGameTable.GameDeck); Assert.AreSame(secondBot, secondGameTable.Player); Assert.AreEqual(secondGameTable.MinBet, minBet); // third case var thirdBot = new HiOptIIStrategyBot(); var thirdGameTable = new GameTable(thirdBot, minBet); Assert.IsNotNull(thirdGameTable); Assert.IsNotNull(thirdGameTable.Dealer); Assert.IsNotNull(thirdGameTable.Player); Assert.IsNotNull(thirdGameTable.GameDeck); Assert.AreSame(thirdBot, thirdGameTable.Player); Assert.AreEqual(thirdGameTable.MinBet, minBet); }
public void ConstructorTest() { // first case var firstBot = new WinningStrategyBot(); Assert.IsFalse(firstBot.IsLeave()); Assert.IsTrue(firstBot.GamePlayed == 0); Assert.IsTrue(firstBot.Hands != null); Assert.IsTrue(firstBot.Cash == 1000); Assert.IsTrue(firstBot.Flag == Player.PlayerState.Play); // second case var secondBot = new HiOptIIStrategyBot(); Assert.IsTrue(secondBot.GamePlayed == 0); Assert.IsFalse(secondBot.IsLeave()); Assert.IsTrue(secondBot.Hands != null); Assert.IsTrue(secondBot.Cash == 1000); Assert.IsTrue(secondBot.Flag == Player.PlayerState.Play); }
public void MakeBetTest() { // preparetion int initialBet = 100; var bot = new HiOptIIStrategyBot(initialBet) { Flag = PlayerState.Stop }; var botHand = bot.Hands[0]; botHand.Cards = Tools.CreateCardSet(CardRank.Ten); List <Card> dealerCards = Tools.CreateCardSet(CardRank.Ace, CardRank.Two); int minBet = 10; int betUnit = 2 * minBet; // checking bet when realScore < 0 bot.Play(botHand, dealerCards); bot.MakeBet(minBet); Assert.AreEqual(bot.Hands[0].Bet, betUnit / 2); // checking bet when 0 <= realScore < 1 botHand.Cards = Tools.CreateCardSet(CardRank.Four); dealerCards = Tools.CreateCardSet(CardRank.Five); Tools.RepeatPlay(bot, dealerCards, 3); bot.MakeBet(minBet); Assert.AreEqual(bot.Hands[0].Bet, betUnit); // checking bet when 1 <= realScore < 2 Tools.RepeatPlay(bot, dealerCards, 1); bot.MakeBet(minBet); Assert.AreEqual(bot.Hands[0].Bet, betUnit * 2); // checking bet when 2 <= realScore < 3 Tools.RepeatPlay(bot, dealerCards, 1); bot.MakeBet(minBet); Assert.AreEqual(bot.Hands[0].Bet, betUnit * 4); // checking bet when 3 <= realScore < 4 Tools.RepeatPlay(bot, dealerCards, 1); bot.MakeBet(minBet); Assert.AreEqual(bot.Hands[0].Bet, betUnit * 6); // checking bet when 4 <= realScore < 5 Tools.RepeatPlay(bot, dealerCards, 1); bot.MakeBet(minBet); Assert.AreEqual(bot.Hands[0].Bet, betUnit * 8); // checking bet when 5 <= realScore < 6 Tools.RepeatPlay(bot, dealerCards, 1); bot.MakeBet(minBet); Assert.AreEqual(bot.Hands[0].Bet, betUnit * 10); // checking bet when realScore >= 6 Tools.RepeatPlay(bot, dealerCards, 1); bot.MakeBet(minBet); Assert.AreEqual(bot.Hands[0].Bet, betUnit * 12); }