这是事情。最近我一直在研究一个类似AI的项目。我想要做的是,我会得到一个0-300之间的随机数,我必须根据这个数字做一个随机的事情。
现在我可以使用
switch(/*number b/w 0-300*/){
case 0:
case 1:
so on to 300
我已经尝试了IF-Else案例,显然他们在转换案件时效率更低。
但我认为必须有一个更好的方法来做到这一点,因为在很多情况下,这样做会花费很长时间。
编辑:我想提一下所有这些案例都是VOID所以我不知道如何使用列表来实现它们。而我在java 7不能改为java 8所以界面有点难以管理答案 0 :(得分:0)
您可以为所有"随机事物":
定义一个界面interface AIAction {
public void execute();
}
然后收集所有这些行动'在数组中实现。我选择使用lambda来实现每个AIAction
,但这最终取决于你:
static AIAction[] actions = new AIAction[] {
() -> {System.out.println("a");},
() -> {System.out.println("b");},
() -> {System.out.println("c");}
};
之后,你可以像这样执行一个随机动作:
Random rand = new Random();
int index = rand.nextInt(actions.length);
actions[index].execute();
答案 1 :(得分:0)
列出要从中选择的内容
List<Choice> choices = new List<Choice>();
choices.add(something);
choices.add(somethingElse);
...
Choice random = choices.get(new Random().nextInt(choices.size()));