public void GameConplete1Player_Complete_MapsCorrectly()
        {
            var game = new BlackJackGame(defautlCardProvider, DealerNamedData, 1);

            game.AddPlayer(PlayerTed);
            game.SetPlayerStatusReady(PlayerTedId);
            game.DealHands();

            var TedHandKey = game.CurrentPlayer.Hands.Single().Identifier;

            game.PlayerHits(PlayerTedId, TedHandKey);
            game.PlayerHits(PlayerTedId, TedHandKey);
            game.PlayerHits(PlayerTedId, TedHandKey);
            game.PlayerHits(PlayerTedId, TedHandKey);
            game.PlayerHits(PlayerTedId, TedHandKey);
            game.PlayerHits(PlayerTedId, TedHandKey);
            game.PlayerHits(PlayerTedId, TedHandKey);
            game.PlayerHits(PlayerTedId, TedHandKey);

            Assert.Throws <InvalidOperationException>(() => game.PlayerHits(PlayerTedId, TedHandKey));

            var gameDto = MapperBlackJackGameDto.Map(game, PlayerTedId);

            var Ted    = game.Players.Single(p => p.Identifier == PlayerTedId);
            var TedDto = gameDto.Players.Single(p => p.PlayerIdentifier == PlayerTedId);

            var dealer    = game.Players.Single(p => p.Identifier == DealerDataId);
            var dealerDto = gameDto.Players.Single(p => p.PlayerIdentifier == DealerDataId);

            Assert.AreEqual(game.Players.Count(), gameDto.Players.Count);
            Assert.AreEqual(Ted.Hands.Count(), TedDto.Hands.Count);
            Assert.AreEqual(Ted.Hands.Single().Identifier, TedDto.Hands.Single().Identifier);
            Assert.AreEqual(Ted.Hands.Single().PointValue, TedDto.Hands.Single().PointValue);
            Assert.AreEqual(10, TedDto.Hands.Single().CardCount);
            Assert.AreEqual(21, TedDto.Hands.Single().PointValue);

            Assert.AreEqual(dealer.Hands.Count(), dealerDto.Hands.Count);
            Assert.AreEqual(dealer.Hands.Single().Identifier, dealerDto.Hands.Single().Identifier);
            Assert.AreEqual(dealer.Hands.Single().PointValue, dealerDto.Hands.Single().PointValue);
            Assert.AreEqual(2, dealerDto.Hands.Single().CardCount);
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Black Jack");
            Console.WriteLine();
            var deck   = new Deck(new RandomNumberGenerator());
            var player = new BlackJackPlayer("Stefan");
            var dealer = new BlackJackDealer();
            var game   = new BlackJackGame(Guid.NewGuid(), deck, dealer, player);

            Console.WriteLine("Do you want to play Black Jack? (y/n):");

            while (Console.ReadLine() == "y")
            {
                game.StartNewGame();

                DisplayPlayerInfo(game.Player);
                DisplayPlayerInfo(game.Dealer);

                Console.WriteLine($"{game.Player.Name}, do you want a hit?");

                while (!game.Player.IsBust && Console.ReadLine() == "y")
                {
                    game.PlayerHits();

                    DisplayPlayerInfo(game.Player);
                }

                if (!game.Player.IsBust)
                {
                    game.PlayerSticks();
                }

                DisplayPlayerInfo(game.Dealer);

                Console.WriteLine($"...and the winner is: {game.GetWinnerName()}");

                Console.WriteLine("You want to play again? (y/n)");
            }
        }
Ejemplo n.º 3
0
        public void AfterDeal_PlayerHits_CurrectValues()
        {
            var playerOneId = "8625cf04-b7e2";
            var game        = new BlackJackGame(cardProvider, DealerNamedData, 1);

            game.AddPlayer(new BlackJackPlayer(new AvitarDto()
            {
                id = "8625cf04-b7e2", userName = playerName2
            }, HandIdentifierProvider, 1));
            game.SetPlayerStatusReady(playerOneId);
            game.DealHands();
            Assert.AreEqual(2, game.Players.Last().Hands.First().Cards.Count());
            Assert.AreEqual(5, game.Players.First().Hands.First().PointValue);
            Assert.AreEqual(5, game.Players.Last().Hands.First().PointValue);
            Assert.IsTrue(game.Players.First().Hands.First().Cards.First().FaceDown);
            Assert.IsFalse(game.Players.First().Hands.First().Cards.Last().FaceDown);
            Assert.IsTrue(game.Players.Last().Hands.First().Cards.First().FaceDown);
            Assert.IsFalse(game.Players.Last().Hands.First().Cards.Last().FaceDown);

            game.PlayerHits(playerOneId, HandIdentifierProvider.GenerateHandIds(1).Single());
            Assert.AreEqual(3, game.Players.First().Hands.First().Cards.Count());
            Assert.AreEqual(7, game.Players.First().Hands.First().PointValue);
        }