首页 > 代码库 > 关于2048小游戏中随机生成2与4个数的问题

关于2048小游戏中随机生成2与4个数的问题

public class InitNumer {
    Random random = new Random();

    public InitNumer() {
        super();
    }

    /**
     *  随机生成一个二维数组,并指定生成的2与4的个数
     * @param rowAndCol 二维数组的宽与高
     * @param numberOf2 数字2的个数
     * @param numberOf4 数字4的个数
     */
    public int[][] randomGetNumber(int rowAndCol, int numberOf2, int numberOf4) {
        int[][] numArray = new int[rowAndCol][rowAndCol];
        for(int i=0;i<numberOf2;i++){
            int xi = random.nextInt(rowAndCol);
            int yi = random.nextInt(rowAndCol);
            if(numArray[xi][yi]==0){
                numArray[xi][yi]=2;
            }
        }
        for(int j=0;j<numberOf4;j++){
            int xj = random.nextInt(rowAndCol);
            int yj = random.nextInt(rowAndCol);
            if(numArray[xj][yj]==0){
                numArray[xj][yj]=4;
            }
        }
        return  numArray;
    }
}

随机生成的二维数组会出现一个问题,就是当(xi,yi)与(xj,yj)坐标相同的时候就会少生成一个4。就是说随机生成的2的个数可以确定,但是4的个数不能确定。例如:

技术分享

待解决。

关于2048小游戏中随机生成2与4个数的问题