java - 我可以在具有多个实例的类上使用 Random 方法吗?
问题描述
我正在尝试创建一个 Player 类,该类将随机选择不同类中的一名 Combatants 并使用它。所有这些都包含在我正在学习创建的口袋妖怪游戏中。
现在我只是想弄清楚是否有可能制作一个随机方法来选择一名战斗人员并将其设置为 player1(例如)
public class combatantList extends Combatant {
Combatant Gengar = new Combatant("Gengar", 40, 33, 30, 6);
Combatant Charizard = new Combatant("Charizard", 45, 35, 100, 6);
Combatant Venasaur = new Combatant("Venasaur", 40 , 50, 100, 3);
Combatant Pikachu = new Combatant("Pikachu", 35, 25, 100, 7);
Combatant Dito = new Combatant("Dito", 10 , 20 ,100, 4);
}
处理这些问题的最佳方法是将它们设置在一个数组中吗?然后使用随机方法?或者我应该在 Battle 类中使用随机方法吗?
解决方案
你也可以使用 ArrayList
Random rand = new Random();
ArrayList<Combatant> combatants = new ArrayList<>();
combatants.add(new Combatant("Gengar", 40, 33, 30, 6));
combatants.add(new Combatant("Dito", 40, 353, 300, 6));
combatants.add(new Combatant("Pickachu", 450, 123, 30, 6));
Combatant c = combatants.get(rand.nextInt(arrays.length));
推荐阅读
- javascript - 获取两条交叉线的角度
- oracle - 下一个查询看不到以前的单个 SQL 文件 - PL/SQL
- azure-service-fabric - Test-ServiceFabricApplicationPackage Settings.xml 已经存在
- firebase - 为什么我的 PWA 不能在 Safari 和 Opera 上运行?它显示“无法建立与服务器的安全连接”
- c# - 为什么 .Net NPOI CloneStyleFrom() 不能正确应用 Font BoldWeight?
- python - 如何将 240*240*4 的 np 数组打印或转换为 240*240*1?
- unity3d - Unity:将 3d 对象投影/绘制到 2d 平面上
- bash - Bash -c 参数传递给 find
- spring-boot - Spring Cloud Stream:@StreamListener 处理消息两次
- sql - 如果基于此脚本设置回滚事务,脚本是否会获取光标中的下一项?