Пример #1
0
 private void HandlePlayerHitCall(EPlayers player)
 {
     _round.PlayerCall(player, ERoundCalls.Hit);
     _playerViewModels[player].SetPlayerCards(_round.PlayerCards[player]);
     _playerViewModels[player].CardSum = $"Card sum: {_round.PlayersSumOfCards[player]}";
     if (_round.PlayerRoundStates[player] == EPlayerRoundState.ExceededTwentyOne)
     {
         _playerViewModels[player].PlayerExceededTwentyOne();
     }
 }
        public void Execute(EPlayers player)
        {
            int sum = _playersSumOfCards[player];

            if (sum > 21)
            {
                _playerResults[player]     = ERoundResult.DealerWins;
                _playerRoundStates[player] = EPlayerRoundState.ExceededTwentyOne;
            }
        }
Пример #3
0
        public void ThreePlayersCanBeAdded()
        {
            //Arrange
            string playerOneFirstName  = "testUserOneFirstName";
            string playerOneLastName   = "testUserOneLastName";
            int    playerOneIdentifier = 1;

            string playerTwoFirstName  = "testUserTwoFirstName";
            string playerTwoLastName   = "testUserTwoLastName";
            int    playerTwoIdentifier = 10;

            string playerThreeFirstName  = "testUserThreeFirstName";
            string playerThreeLastName   = "testUserThreeLastName";
            int    playerThreeIdentifier = 100;

            EPlayers      playerOne   = EPlayers.Player1;
            EPlayers      playerTwo   = EPlayers.Player2;
            EPlayers      playerThree = EPlayers.Player3;
            BlackjackGame testGame;

            //Act
            testGame = new BlackjackGame(6);
            Player testPlayerOne   = new(playerOneFirstName, playerOneLastName, playerOneIdentifier);
            Player testPlayerTwo   = new(playerTwoFirstName, playerTwoLastName, playerTwoIdentifier);
            Player testPlayerThree = new(playerThreeFirstName, playerThreeLastName, playerThreeIdentifier);


            testGame.AddNewPlayer(testPlayerOne);
            testGame.AddNewPlayer(testPlayerTwo);
            testGame.AddNewPlayer(testPlayerThree);

            //Assert
            if (testGame.Players[playerOne].PlayerIdentifier != playerOneIdentifier || testGame.Players[playerOne].FirstName != playerOneFirstName ||
                testGame.Players[playerOne].LastName != playerOneLastName)
            {
                string errorMessage = $"Added player {playerOne} does not exist in the players list of the game!";
                Assert.Fail(errorMessage);
            }

            //Assert
            if (testGame.Players[playerTwo].PlayerIdentifier != playerTwoIdentifier || testGame.Players[playerTwo].FirstName != playerTwoFirstName ||
                testGame.Players[playerTwo].LastName != playerTwoLastName)
            {
                string errorMessage = $"Added player {playerTwo} does not exist in the players list of the game!";
                Assert.Fail(errorMessage);
            }

            //Assert
            if (testGame.Players[playerThree].PlayerIdentifier != playerThreeIdentifier || testGame.Players[playerThree].FirstName != playerThreeFirstName ||
                testGame.Players[playerThree].LastName != playerThreeLastName)
            {
                string errorMessage = $"Added player {playerThree} does not exist in the players list of the game!";
                Assert.Fail(errorMessage);
            }
        }
Пример #4
0
 /// <summary>
 /// Remove a player from the game. Player can be removed from the game after player finishes the actual being played round. Otherwise, player loses the actual round.
 /// </summary>
 /// <param name="player"></param>
 public void RemovePlayer(Player player)
 {
     if (_players.ContainsValue(player))
     {
         EPlayers playerIdentifier = _players.Keys.First(k => _players[k] == player);
         _players.Remove(playerIdentifier);
     }
     else
     {
         throw new InvalidOperationException($"Player {player.FirstName} does not exist in the current list of players!");
     }
 }
        public void Execute(EPlayers player, ERoundCalls call)
        {
            if (_playerRoundStates[player] == EPlayerRoundState.CanMakeHitCall)
            {
                switch (call)
                {
                case ERoundCalls.Hit:
                    new GivePlayerAdditionalCardCommand(_cards, _playerCards).Execute(player);
                    break;

                case ERoundCalls.Stand:
                    _playerRoundStates[player] = EPlayerRoundState.Stand;
                    break;

                default:
                    return;
                }
            }
        }
Пример #6
0
        public void Execute()
        {
            int dealerCardsSum = _playersSumOfCards[EPlayers.Dealer];

            foreach (KeyValuePair <EPlayers, EPlayerRoundState> playerRoundState in _playerRoundStates)
            {
                if (playerRoundState.Key != EPlayers.Dealer && playerRoundState.Value == EPlayerRoundState.Stand)
                {
                    EPlayers player         = playerRoundState.Key;
                    int      playerCardsSum = _playersSumOfCards[player];

                    if (dealerCardsSum > 21)
                    {
                        _playerResults[player] = ERoundResult.PlayerWins;
                    }

                    if (playerCardsSum <= 21)
                    {
                        if (dealerCardsSum > playerCardsSum)
                        {
                            _playerResults[player] = ERoundResult.DealerWins;
                        }

                        if (dealerCardsSum == playerCardsSum)
                        {
                            _playerResults[player] = ERoundResult.Push;
                        }

                        if (dealerCardsSum < playerCardsSum)
                        {
                            _playerResults[player] = ERoundResult.PlayerWins;
                        }
                    }
                    else
                    {
                        throw new InvalidOperationException(
                                  "Player cannot have sum of cards larger than 21 at this stage! If player has cards which have the sum larger than 21, the player loses the round without making the stand call!");
                    }
                }
            }
        }
Пример #7
0
        public void AddPlayer()
        {
            //Arrange
            string        playerFirstName  = "testUserOneFirstName";
            string        playerLastName   = "testUserOneLastName";
            int           playerIdentifier = 1;
            EPlayers      player           = EPlayers.Player1;
            BlackjackGame testGame;

            //Act
            testGame = new BlackjackGame(6);
            Player testPlayerOne = new(playerFirstName, playerLastName, playerIdentifier);

            testGame.AddNewPlayer(testPlayerOne);

            //Assert
            if (testGame.Players[player].PlayerIdentifier != playerIdentifier)
            {
                string errorMessage = $"Added player does not have the expected identifier! Expected identifier : {playerIdentifier}. Actual identifier: {testGame.Players[EPlayers.Player1].PlayerIdentifier}";
                Assert.Fail(errorMessage);
            }

            //Assert
            if (testGame.Players[player].FirstName != playerFirstName)
            {
                string errorMessage = $"Added player does not have the expected first name! Expected first name : {playerIdentifier}. Actual first name: {testGame.Players[EPlayers.Player1].PlayerIdentifier}";
                Assert.Fail(errorMessage);
            }

            //Assert
            if (testGame.Players[player].LastName != playerLastName)
            {
                string errorMessage = $"Added player does not have the expected last name! Expected last name : {playerIdentifier}. Actual last name: {testGame.Players[EPlayers.Player1].PlayerIdentifier}";
                Assert.Fail(errorMessage);
            }
        }
Пример #8
0
 private void HandlePlayerStandCall(EPlayers player)
 {
     _round.PlayerCall(player, ERoundCalls.Stand);
     _playerViewModels[player].IsStandButtonEnabled = false;
     _playerViewModels[player].IsHitButtonEnabled   = false;
 }
 private void GivePlayerAdditionalCard(EPlayers player)
 {
     _playerCards[player].Add(_cards.First());
     _cards.RemoveAt(0);
 }
        public void Execute(EPlayers player)
        {
            int sum = new GetSumCardValuesCommand().Execute(_playerCards[player]);

            _playersSumOfCards[player] = sum;
        }
Пример #11
0
 public void Execute(EPlayers player)
 {
     _playerCards[player].Add(_cards.First());
     _cards.RemoveAt(0);
 }