如何使值"B"和"K"随机填充一定数量的单元格



我有一块由Java类制成的板,其值(K,L(将随机填充板。我想知道如何使价值;K〃;只随机填充一定数量的细胞(8个细胞(;L";会填满董事会。我的目标是建立一个董事会;K〃;出现8次,其余的将是"0";L";所有这些都是随机的。

public class SimpsonsBoard {
public static void main(String[] args) {
String[][] board = new String[6][6];
for(int i=0; i<board.length; i++) {
for(int j=0; j<board.length; j++) {
double random = Math.random();
if (random < .8 ) {
board[i][j]= String.valueOf('K');
}else {
board[i][j]= String.valueOf('L');
}
System.out.print(board[i][j]);
}
}

System.out.println(" ─────────────");
System.out.println("│" + board[0][0] + "│" + board[0][1] + "│" + board[0][2] + "│" + board[0][3] + "│" + board[0][4] + "│" + board[0][5] + "│");
System.out.println(" ─────────────");
System.out.println("│" + board[1][0] + "│" + board[1][1] + "│" + board[1][2] + "│" + board[1][3] + "│" + board[1][4] + "│" + board[1][5] + "│");
System.out.println(" ─────────────");
System.out.println("│" + board[2][0] + "│" + board[2][1] + "│" + board[2][2] + "│" + board[2][3] + "│" + board[2][4] + "│" + board[2][5] + "│");
System.out.println(" ─────────────");
System.out.println("│" + board[3][0] + "│" + board[3][1] + "│" + board[3][2] + "│" + board[3][3] + "│" + board[3][4] + "│" + board[3][5] + "│");
System.out.println(" ─────────────");
System.out.println("│" + board[4][0] + "│" + board[4][1] + "│" + board[4][2] + "│" + board[4][3] + "│" + board[4][4] + "│" + board[4][5] + "│");
System.out.println(" ─────────────");
System.out.println("│" + board[5][0] + "│" + board[5][1] + "│" + board[5][2] + "│" + board[5][3] + "│" + board[5][4] + "│" + board[5][5] + "│");
System.out.println(" ─────────────");

}
}

最简单的方法是用K填充board数组,然后按照@dan1st的建议用L随机替换其中的8个。以下内容应该有效:

public class SimpsonsBoard {
public static void main(String[] args) {
String[][] board = new String[6][6];
for (String[] row : board) {
Arrays.fill(row, "K");
}
Random random = new Random();
for(int i = 1; i <= 8; i++) {
int x = random.nextInt(6);
int y = random.nextInt(6);
board[x][y]= "L";
}
System.out.println(" ─────────────");
System.out.println("│" + board[0][0] + "│" + board[0][1] + "│" + board[0][2] + "│" + board[0][3] + "│" + board[0][4] + "│" + board[0][5] + "│");
System.out.println(" ─────────────");
System.out.println("│" + board[1][0] + "│" + board[1][1] + "│" + board[1][2] + "│" + board[1][3] + "│" + board[1][4] + "│" + board[1][5] + "│");
System.out.println(" ─────────────");
System.out.println("│" + board[2][0] + "│" + board[2][1] + "│" + board[2][2] + "│" + board[2][3] + "│" + board[2][4] + "│" + board[2][5] + "│");
System.out.println(" ─────────────");
System.out.println("│" + board[3][0] + "│" + board[3][1] + "│" + board[3][2] + "│" + board[3][3] + "│" + board[3][4] + "│" + board[3][5] + "│");
System.out.println(" ─────────────");
System.out.println("│" + board[4][0] + "│" + board[4][1] + "│" + board[4][2] + "│" + board[4][3] + "│" + board[4][4] + "│" + board[4][5] + "│");
System.out.println(" ─────────────");
System.out.println("│" + board[5][0] + "│" + board[5][1] + "│" + board[5][2] + "│" + board[5][3] + "│" + board[5][4] + "│" + board[5][5] + "│");
System.out.println(" ─────────────");
}
}

我将尝试用"L"填充整个数组,下一步为"K"随机选择8个位置。

你应该用这样的东西来打印

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

最新更新