繁体   English   中英

Java 2d数组If语句

[英]Java 2d Array If statement

我制作了2D数组来显示地图,但我很难制作,因此,如果可以将随机数“ 1”放置在数组中除[0] [0]之外的任何位置,我已经做了很多尝试结果很奇怪。

public static void main (String[] args)
{
    int rnd = (int) (Math.random()*4);
    int[][]map;
    int rows = 4;
    int columns = 4;
    map = new int[rows][columns];
    map[rnd][rnd] = 1;

    for(int i=0; i<map.length; i++){
        for(int j=0; j<map[0].length; j++){    
                System.out.print(map[i][j] + " ");
        }
        System.out.println("");         
    }
    }
}

有人有办法做到吗?

一种方法是选择两个随机数并循环直到它们都不都是零。

Random random = new Random();
int i, j;
do {
    i = random.nextInt(4);
    j = random.nextInt(4);
} while (i == 0 && j == 0);
int[][] map = new int[4][4];
map[i][j] = 1;

另一种选择是从1到15中选择一个随机数,然后使用除法和余数。

Random random = new Random();
int i = random.nextInt(15) + 1;
int[][] map = new int[4][4];
map[i/4][i%4] = 1;

第二版本的功能尚不清楚,因此可能需要添加注释以进行解释。

现在,您在两个维度上都使用了相同的随机数,因此(0,0),(1、1),(2、2)或(3,3)都可以设置为1 ,但是没有其他点。

选择2个不同的随机数,每个维度一个。 最好创建一个java.util.Random对象,因此您可以调用nextInt(4)来获取所需的范围。 while循环中,如果两个数字均为0 ,请再次选择2个不同的随机数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM