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

如何在4x4二维数组中随机选中0元素替换为lesserMonster变量值

实现方案

你只需要调整变量赋值、增加随机坐标生成的逻辑即可,具体操作如下:

  • 首先在Java文件顶部导入内置的随机数工具类:import java.util.Random;
  • 把setup方法里的lesserMonster赋值从2改为1
  • 初始化随机数生成器,分别随机生成4x4数组对应的行、列下标(范围都是0~3)
  • 将数组对应下标的元素替换为lesserMonster的值即可

完整修改后的代码

导入依赖

import java.util.Random;

修改后的setup方法

public static void setup(int dungeon[][]){
        int lesserMonster = 1; // 按需求修改赋值为1
        int drangon = 1;
        // 初始化全0地牢数组
        for(int i = 0; i < dungeon.length; i++){
            for(int j = 0; j < dungeon[i].length; j++){
                dungeon[i][j] = 0;
            }
        }
        // 随机生成坐标替换元素
        Random random = new Random();
        int randomRow = random.nextInt(dungeon.length); // 随机行号,范围0到数组长度-1
        int randomCol = random.nextInt(dungeon[0].length); // 随机列号
        dungeon[randomRow][randomCol] = lesserMonster;
        
        pDungeon(dungeon);
}

优化后的pDungeon方法

原方法可以直接使用,这里做了小调整适配非方阵场景:

public static void pDungeon(int dungeon[][]){
        for(int i = 0; i < dungeon.length; i++){
            for(int j = 0; j < dungeon[i].length; j++){
                System.out.print(dungeon[i][j] + " ");
            }
            System.out.println();
        }
}

补充说明

如果后续数组中会存在非0元素,需要保证只选中值为0的元素替换,可以用循环反复随机直到拿到符合要求的坐标,逻辑如下:

Random random = new Random();
int randomRow, randomCol;
do {
    randomRow = random.nextInt(dungeon.length);
    randomCol = random.nextInt(dungeon[0].length);
} while (dungeon[randomRow][randomCol] != 0);
dungeon[randomRow][randomCol] = lesserMonster;

内容的提问来源于stack exchange,提问作者Alec

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:54:04