// Deal
    public void Deal()
    {
        _sideGameState = ESideGameState.NONE;
        _gameUIManager.StartGame();
        _gameUIManager.SetTotalBattingChipText(_player.GetBattingFee());
        _gameUIManager.SetBalanceText(_player.GetBalance());

        _player.ClearHand();
        _dealer.ClearHand();


        for (int i = 0; i < 2; ++i)
        {
            _player.PushCard(_deck.Pop());
            _player.ShowCardFace(i, true);
            _dealer.PushCard(_deck.Pop());
        }
        _dealer.ShowCardFace(0, true);

        //if the dealer's hand is not blackjack, it does not reveal.
        _dealer.ShowCardFace(1, (_dealer.GetTotalHandCardValue() == 21));

        //check player is black jack or not
        if (_player.GetTotalHandCardValue() == 21)
        {
            _player.IsBlackJack = true;
        }

        _gameUIManager.SetPlayerHandCardValue(_player.GetFaceUpCardValue());
        _gameUIManager.SetDealerHandCardValue(_dealer.GetFaceUpCardValue());
    }