所以,現在我有一個2D數組,它根據用戶輸入(行和列)打印遊戲字段。它用'.'
字符填充陣列。我現在需要的是使用第三個用戶輸入amountTreasure
來確定地圖上寶物的數量。在隨機位置填充固定數量珍寶的2D字符數組
我該如何循環這個二維數組,並在隨機位置放置3個寶物。有趣的部分是我需要防止計算機多次隨機選擇相同的地方。
我現在有這段代碼。
public static char[][] createMatrix(int n, int m, int amountTreasure) {
Random rand = new Random();
char[][] matrix = new char[n][m];
for (char[] matrixList : matrix) {
Arrays.fill(matrixList, '.');
}
for (int v = 0; v < matrix.length; v++) { //Loop through matrix
for (int b = 0; b < matrix[v].length; b++) {
continue;
}
}
return matrix;
}
我想是這樣
matrix[v][b] = (char) rand.nextInt('X')
,但它不工作。我對Java真的很陌生,不知道該怎麼做。
這是行得通的,但問題是電腦可能會多次選擇相同的地方,這樣寶物的數量就會少於需要的數量。 – Moontego
不,它不會多次選擇相同的地方。如果它選擇'X',那麼它會嘗試選擇另一個隨機的。這就是他使用do-while()循環的原因。 – mkabanen
現在我明白了,謝謝 – Moontego