0

玩家总是有4张牌,它们存储在一个数组中,玩家需要选择最不需要的牌并返回不需要的牌的索引(从0到3),规则如下

  1. 如果一个等级出现在玩家手中的次数最多,则随机选择一张不同等级的牌。
  2. 否则,从玩家的整个手牌中随机选择一张牌。

我花了两个小时,问题是我需要知道每个卡片等级的出现及其在数组中的位置,所以我使用了

Map<Rank, ArrayList<Integer>>

而且决策部分非常混乱,有没有更好的方法来做到这一点?

例子:

如果我的手牌是 A,10,10,A 那么我随机选择一个。如果我的手牌是 3,3,3,A 那么我选择 A 如果我的手牌是 2,2,4,5 那么我随机选择 4 或 5。如果我的手牌是 A,2,3,4 那么我随机选择一。

4

1 回答 1

1

您需要定义模型类,而不是尝试跟踪数组列表映射中的所有内容。

public class Card {
    private String rank;
    private String value:
}

.

public class Hand {
    private List<Card> cards;
}

.

public class Player {
    private Hand hand;
}

.

public class CardGame {
    private List<Player> players;
}

您可以使用其余的游戏信息填写这些模型类。

于 2013-03-17T23:54:23.430 回答