用于计算玩家手中牌数的Java数据结构

用于计算玩家手中牌数的Java数据结构,java,data-structures,Java,Data Structures,玩家总是有4张牌,它们存储在一个数组中,玩家需要选择最不想要的牌并返回不想要的牌的索引(从0到3),规则如下 如果一个等级出现在玩家手中最多,则随机选择一张等级不同的牌 否则,将从玩家的整手牌中随机选择一张牌 我花了两个小时在上面,问题是我需要知道每一张牌的等级和它们在数组中的位置,所以我使用了 Map<Rank, ArrayList<Integer>> Map 决策部分非常混乱,有没有更好的方法 例如: 如果我的手是A,10,10,A,那么我随机选择一只。 如果我的

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

  • 如果一个等级出现在玩家手中最多,则随机选择一张等级不同的牌
  • 否则,将从玩家的整手牌中随机选择一张牌
  • 我花了两个小时在上面,问题是我需要知道每一张牌的等级和它们在数组中的位置,所以我使用了

    Map<Rank, ArrayList<Integer>>
    
    Map
    
    决策部分非常混乱,有没有更好的方法

    例如:

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

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

    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;
    }