gpt4 book ai didi

java - 在 Java 中将随机字符放置在数组板上

转载 作者:行者123 更新时间:2023-12-01 10:02:43 25 4
gpt4 key购买 nike

我正在制作一个简单的阵列板。我试图让字符“$”在随机位置出现 10 次,而“R”在随机位置仅出现一次。我继续改变随机化,但我知道我的做法是错误的。字符以随机数量出现在随机位置

编辑:我忘了提及我正在尝试维护嵌套的 for 循环。

编辑:我在代码中放置了我最后尝试的 if 语句,而不是占位符。

这是我的代码:

import java.util.*;
public class board
{
public static void main(String[] args)
{
char $;
char R;
char board[][] = new char[10][10];

for(int x = 0; x < board.length; x++)
{
for(int i = 0; i < board.length; i++)
{
double random = Math.random();
if(random >.01 && random <=.10)
{
board[x][i] = 'R';
}
else if(random > .01 && random <= .15)
{
board[x][i] = '$';
}
else {
board[x][i] = '.';
}
System.out.print(board[x][i] + " ");
}
System.out.println("");
}
}
}

最佳答案

通过迭代所有位置并与概率进行比较,您不会获得随机放置。如果放置太多或不足会发生什么情况?更好的算法是生成随机位置,直到棋盘上有足够的位置为止。像这样的东西:

while (count < target) {
int x = rand.getInt(size);
int y = rand.getInt(size);
if (board[x][y] == '.') {
board[x][y] = '$';
count++;
}
}

这将自动跳过已分配该角色的位置,并将继续,直到放置了足够的位置。

这可以做成一个用于两个展示位置的方法:

private void place(char toPlace, int target) {
int count = 0;
while (count < target) {
int x = rand.getInt(size);
int y = rand.getInt(size);
if (board[x][y] == '.') {
board[x][y] = toPlace;
count++;
}
}
}

place('M', 1);
place('$', 10);

关于java - 在 Java 中将随机字符放置在数组板上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36683948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com