You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 14:20:28