我在编写Uno游戏的AI时遇到了一个问题,关于通配卡的使用。我希望AI能够根据手中的牌选择最佳的颜色来打出通配卡,但我想不出该如何实现…
卡牌是一个类,包含一个字符串类型的Face属性和一个枚举类型的Color属性
public class Card { public CardColor Color { get; set; } public string Face { get; set; } public Card(CardColor color, string face) { Color = color; Face = face; } } public enum CardColor { Red, Green, Blue, Yellow, Wild }
每个玩家有一组卡牌
public List<Card> Cards { get; set; }
现在我需要选择手中的颜色来打出通配卡 :/
回答:
根据我的评论,如果你想通过卡牌列表中颜色的频率来决定通配卡的颜色,可以这样做:
var mostFrequentColor = Cards.GroupBy(c => c.Color) .OrderByDescending(x => x.Count()) .FirstOrDefault(y => y.Color)