private async Task <int> CountComputerCards()
        {
            CountingData data;

            do
            {
                CardView card = _game.GetSuggestedCard(PlayerType.Computer);
                MainPage.LogTrace.TraceMessageAsync(String.Format("Computer played card: {0}", card.Data.Name));
                data = _game.CountCard(PlayerType.Computer, card, Settings.Difficulty);
                _nComputerCountingPoint += data.Score;
                await _view.OnCountCard(card, PlayerType.Computer, data); // count until it isn't the computer's turn

                _boardUi.AddScoreAsync(PlayerType.Computer, data.Score);
                _boardUi.Turn = data.NextPlayer;
                if (_game.GetCurrentScore(PlayerType.Computer) > WINNING_SCORE)
                {
                    await SetState(GameState.GameOver);

                    return(8);
                }
                _totalCardsDropped = data.CardsCounted;
                if (data.CardsCounted == 8)
                {
                    return(8);
                }
            } while (data.NextPlayerIsComputer);

            return(data.CardsCounted);
        }