用于在玩家手中计数卡的Java数据结构

时间:2013-03-17 22:42:38

标签: java data-structures

播放器总是有4张卡,并且它们存储在一个阵列中,播放器需要选择最不需要的卡并返回不需要的卡的索引(从0到3),然后遵循以下规则

  1. 如果玩家手中出现的排名最高,则会随机选择不同等级的牌。
  2. 否则,从玩家的整个手牌中随机选择一张牌。
  3. 我花了两个小时,问题是我需要知道每个卡等级的出现及其在阵列中的位置,所以我用了

    Map<Rank, ArrayList<Integer>>
    

    并且决策部分非常混乱,有更好的方法吗?

    示例:

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

1 个答案:

答案 0 :(得分: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;
}

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