Esempio n. 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;
            }
        }
Esempio n. 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);
            }
        }
Esempio n. 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;
                }
            }
        }
Esempio n. 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!");
                    }
                }
            }
        }
Esempio n. 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);
            }
        }
Esempio n. 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;
        }
Esempio n. 11
0
 public void Execute(EPlayers player)
 {
     _playerCards[player].Add(_cards.First());
     _cards.RemoveAt(0);
 }