java随机填充2d数组
我正在使用Java开发5X5棋盘游戏(表示为String[][]),我正在寻找一种有效的方法,在棋盘上随机放置3个A、3个B、3个C、3个D
我曾考虑在while循环中使用嵌套for循环遍历每个插槽,并将字母随机分配到电路板上的“插槽”,但我想在电路板的一个通道中完成,如果有一种好方法可以在一个通道中随机放置电路板上的所有15个字母
有什么建议吗
你可以在下面搜索框中键入要查询的问题!
我正在使用Java开发5X5棋盘游戏(表示为String[][]),我正在寻找一种有效的方法,在棋盘上随机放置3个A、3个B、3个C、3个D
我曾考虑在while循环中使用嵌套for循环遍历每个插槽,并将字母随机分配到电路板上的“插槽”,但我想在电路板的一个通道中完成,如果有一种好方法可以在一个通道中随机放置电路板上的所有15个字母
有什么建议吗
# 1 楼答案
您可以使用
ArrayList
存储字母(以及空单元格,我使用点.
,以便您可以在输出中识别它),然后使用Collections.shuffle()
将ArrayList
的元素放在“随机”位置。最后,将每个字母分配给String[][]
数组:输出样本:
注意:
操作
i*board.length + j
将在嵌套循环中生成结果数0, 1, 2, 3, ... 24
# 2 楼答案
一种方法是:创建一个
ArrayList<Character>
或字符串,给它输入15个字母,在ArrayList上调用java.util.Collections.shuffle(...)
,然后迭代这个列表,将随机项放入数组中例如: