gpt4 book ai didi

Java 从 3 个不同的枚举中获取随机值

转载 作者:搜寻专家 更新时间:2023-10-31 19:37:57 24 4
gpt4 key购买 nike

我正在实现一个简单版本的 Cluedo 游戏。游戏中有 3 种类型的卡片,角色、武器和房间。由于一张卡片只不过是一个字符串(即除了名称之外没有其他功能或信息存储在卡片中),我选择不使用 Card 接口(interface)并且每种类型都扩展 Card。相反,我在我的游戏中有三个枚举:

public enum Character {Scarlett, Mustard, White, Green, Peacock, Plum;}
public enum Weapon {Candlestick, Dagger, LeadPipe, Revolver, Rope, Spanner;}
public enum Room {Kitchen, Ballroom, Conservatory, BilliardRoom, Library, Study, Hall;}

然而,有一种情况是将三种类型的牌放在一起并平均发给游戏中的每位玩家。例如,一个玩家的手可能有 2 个角色、2 个武器和 1 个房间,另一个玩家可能有 3 个房间和 2 个角色,所以只要卡的总数是偶数,不管是什么类型。

这就是为什么我想知道是否有一种方法可以从 Java 中的所有三个枚举中随机选择一个值?

或者我一开始就不应该做这三个枚举的事情? (设计糟糕)

最佳答案

一种简单的方法是将所有枚举成员收集到一个Object[] 中,然后从中取出一个随机元素。

请注意,枚举也可以实现接口(interface),因此您甚至可以在所有枚举之间共享一些 API。通常你会发现自己写了很多关于枚举值的 switch 语句;这些大多可以被针对此类接口(interface)方法的动态调度所取代。进一步注意,每个枚举成员都可以提供自己的方法实现。

关于Java 从 3 个不同的枚举中获取随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31635866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com