Java赌场项目:根据用户输入的盒子数生成老虎机随机水果组合
问题解决:动态生成对应长度的老虎机水果组合
问题说明
开发Java校园赌场项目的老虎机功能时,现有generarCombinacion方法固定返回3个元素的Fruta数组,无法根据传入的cantidadCasillas参数生成对应长度的随机水果组合,需要修改方法实现动态长度的数组生成。
解决方案
修改generarCombinacion方法,将固定长度数组改为动态长度初始化,通过循环为每个数组元素生成随机水果枚举值。同时优化Random实例的创建,避免每次调用方法都新建对象。
修改后的代码
1. 调整MaquinaTragamonedas类的generarCombinacion方法
import java.util.Random; public class MaquinaTragamonedas { // 将Random声明为类成员变量,复用实例 private final Random random = new Random(); private int cantidadCasillas; // 确保该变量已正确接收用户输入的盒子数量 // 其他原有代码... public Fruta[] generarCombinacion(int cantidadCasillas) { // 校验参数合法性,避免生成负数/零长度数组 if (cantidadCasillas <= 0) { throw new IllegalArgumentException("盒子数量必须大于0"); } // 初始化对应长度的Fruta数组 Fruta[] combinacion = new Fruta[cantidadCasillas]; // 循环填充每个位置的随机水果 for (int i = 0; i < cantidadCasillas; i++) { // 随机获取Fruta枚举中的一个值 combinacion[i] = Fruta.values()[random.nextInt(Fruta.values().length)]; } return combinacion; } // 原有jugar方法保持不变 public Fruta[] jugar () { if(verificarRecaudacionMinima()){ mostrarMensaje(); }; return generarCombinacion(cantidadCasillas); } }
2. 关键改动说明
- 动态数组初始化:用
new Fruta[cantidadCasillas]替代固定长度的数组字面量,实现根据参数生成对应长度的数组。 - 循环填充元素:通过for循环遍历数组的每个索引,为每个位置生成随机的
Fruta枚举值。 - 参数合法性校验:增加对
cantidadCasillas的判断,防止传入无效值导致异常。 - Random实例优化:将
Random声明为类成员变量,避免每次调用方法都创建新实例,提升性能。
额外注意事项
确保MaquinaTragamonedas类中的cantidadCasillas变量已正确绑定用户输入的值(比如从Swing的输入组件中获取并赋值),否则生成的数组长度仍不符合预期。
内容的提问来源于stack exchange,提问作者webussy
相关产品推荐
相关产品推荐

