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

标签 java data-structures

玩家总是有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,那么我随机选择一个。

最佳答案

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

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

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

关于Java数据结构计算玩家手中的牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15467151/

相关文章:

Java RegEx 从 getter 和/或 setter 中查找变量?

java - JOptionPane 是否阻塞事件线程

java - tomee中如何加密数据源密码或数据源

c - AVL 树出现错误

data-structures - 链表相对于数组的优势是什么,反之亦然?

java - 哪个系列最适合这个

java - 使用 Jaxb 解码通用子项

java - 如何判断jmenuitem是否是分隔符

java - 从数组中计算可行的子列表长度

python - 无需递归访问嵌套列表和字典中的所有元素