当前位置: 首页 > 知识库问答 >
问题:

如何随机选择枚举值?[重复]

裴威
2023-03-14

我正在编写一个二十一点游戏。我有一个所有可用牌类型的枚举。交易时,我想使用Random从枚举中随机选择一张牌给玩家。如何使用整数值对应枚举值?或者,我如何为该枚举的变量随机选择枚举值?

void chooseCard() {
    Random rn = new Random();
    Card myCard = rn.nextInt(); //How can I do something like this? (randomly select Card value)? 0 being ACE, 1 being TWO...
}

纸牌Enun:

public enum Cards {
    ACE("ACE", 1, 11), TWO("TWO", 2), THREE("THREE", 3), FOUR("FOUR", 4), FIVE("FIVE", 5), SIX("SIX", 6), 
    SEVEN("SEVEN",7), EIGHT("EIGHT", 8), NINE("NINE", 9), TEN("TEN", 10), JACK("JACK", 10), KING("KING", 10), QUEEN("QUEEN",10);

    private int value1;
    private int value2;
    private String name;

    private Cards(String name, int value1) {
        this.value1 = value1;
    }

    private Cards(String name, int value1, int value2) {
        this.value1 = value1;
        this.value2 = value2;
    }

    public int getValue1() {
        return value1;
    }

    public int[] getValue2() {
        int[] val = { value1, value2 };
        return val;
    }

    public String getName() {
        return name;
    }

}

共有1个答案

湛光华
2023-03-14
// get an array of all the cards
private Card[]cards=Cards.values();
// this generates random numbers
private Random random = new Random();
// choose a card at random
final Card random(){
     return cards[random.nextInt(cards.length)];
}
 类似资料:
  • 微调器板条箱有一个枚举,其中包含大量可能的微调器。 这是枚举(跳过除顶部和底部4之外的所有值): 新微调器易于创建: 但是,我希望随机选择一个微调器,这是行不通的: 因为: 如何随机选择枚举值,并使用该值显示随机微调器?

  • 我需要java JAVA CODE中此解决方案的delphi解决方案

  • 问题内容: 如果我有这样的枚举: 随机挑选一个的最佳方法是什么?它不需要是生产质量的防弹产品,但是相当均匀的分配将是不错的选择。 我可以做这样的事情 但是有更好的方法吗?我觉得这是之前已解决的问题。 问题答案: 我唯一建议的是缓存结果,因为每个调用都会复制一个数组。另外,不要每次都创建一个。保持一个。除此之外,您在做什么都很好。所以:

  • 如果我有这样的枚举: 随机挑选的最佳方式是什么?它不需要是生产质量的防弹产品,但一个相当均匀的分布将是很好的。 我可以做这样的事 但是有没有更好的方法呢?我觉得这是以前解决过的问题。

  • 我的问题很简单。我有以下几点: 如何从该枚举中选择随机元素?我试着解决这个问题,但没有成功。

  • 问题内容: 我需要选择列的枚举值。通过搜索,我发现了两种方法: 和另一个: 尽管第一个查询将为我提供此信息: 第二个查询给了我相同的内容,并且还有其他列。我宁愿只获取那些没有“ enum()”和逗号的值,是否可能,还是我需要解析这些值?并不是仅检查是否有更简单的方法就很困难。 假设没有更简单的方法,那么上面两个查询中的哪个更适合使用?我注意到第二个查询在运行时没有显示查询时间,我几乎认为它根本不需