玩家总是有4张牌,它们存储在一个数组中,玩家需要选择最不需要的牌并返回不需要的牌的索引(从0到3),规则如下
- 如果一个等级出现在玩家手中的次数最多,则随机选择一张不同等级的牌。
- 否则,从玩家的整个手牌中随机选择一张牌。
我花了两个小时,问题是我需要知道每个卡片等级的出现及其在数组中的位置,所以我使用了
Map<Rank, ArrayList<Integer>>
而且决策部分非常混乱,有没有更好的方法来做到这一点?
例子:
如果我的手牌是 A,10,10,A 那么我随机选择一个。如果我的手牌是 3,3,3,A 那么我选择 A 如果我的手牌是 2,2,4,5 那么我随机选择 4 或 5。如果我的手牌是 A,2,3,4 那么我随机选择一。