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); }