public void predictTrickWinner() { Trick currentTrick = tricks[tricks.Count - 1]; int winningCard = currentTrick.GetCurrentWinningCard(); int winningPlayerId = currentTrick.GetCurrentWinningPlayer(); int remainingPlays = 4 - currentTrick.GetCurrentTrickSize(); int leadSuit = currentTrick.LeadSuit; if (winningCard == -1) { Console.WriteLine("PIG::predictTrickWinner >> Impossible winningCard"); } //if (Card.GetSuit(winningCard) != leadSuit) //{ // predictableTrickCut = true; //} predictableTrickCut = false; for (int i = 0, pid = currentTrick.GetNextPlayerId(); i < remainingPlays; i++, pid = (pid + 1) % 4) { int bestCard = players[pid].GetHighestRankFromSuit(leadSuit, trump); if (bestCard == -1) { //the player does not have the leadsuit neigher the trump continue; } if (Card.GetSuit(bestCard) != leadSuit) { if (Card.GetSuit(winningCard) == leadSuit || Card.GetRank(bestCard) > Card.GetRank(winningCard)) { predictableTrickCut = true; winningCard = bestCard; predictableTrickWinner = pid; } } else if (Card.GetRank(bestCard) > Card.GetRank(winningCard) && !predictableTrickCut) { winningCard = bestCard; predictableTrickWinner = pid; } } }