/**
* 二維座標軸上, 以自身的座標爲原點, 截取固定範圍[m, n]的座標軸, 得到:
* [-m, -m-1, -m-2, ..., -2, -1, 0(自身位置), 1, 2, ..., n-1, n]
*
* @param dictString m_n, 即[m, n]
* @return 一個二維數組
*/
public static int[][] generate2DArraysInt(String dictString) {
String[] dictRange = dictString.split("_");
int rangeLeft = Integer.parseInt(dictRange[0]); // left size
int rangeRight = Integer.parseInt(dictRange[1]); // right size
int[][] rangeArr = new int[2][];
rangeArr[0] = new int[rangeLeft];
rangeArr[1] = new int[rangeRight];
// origin-left
for (int i = rangeLeft; rangeLeft > 0; rangeLeft--) {
rangeArr[0][rangeLeft - 1] = -(i - rangeLeft + 1);
}
// origin-right
for (; rangeRight > 0; rangeRight--) {
rangeArr[1][rangeRight - 1] = rangeRight;
}
return rangeArr;
}
/**
* 從一個二維數組中隨機取一個數字
*
* @param arrays
* @return
*/
public static int randomNumFrom2DArrays(int[][] arrays) {
int side = RandomUtil.randomInt(arrays.length);
int[] sideArr = arrays[side];
return sideArr[RandomUtil.randomInt(sideArr.length)];
}