我有一个网格: int[][] the_grid = new int[4][4];
我想用元素 ?, +, -, *, !, 随机填充它/, #, % 使得正好两个方格中有其中一个元素。完成这项任务最简洁、最有效的方法是什么?
最佳答案
如果您的网格实际上包含 String
(而不是 int
),我会简单地:
列出您可以拥有的代币:
final List<String> tokens = Arrays.asList("?", "+", "-", "*", "!", "/", "#", "%", "?", "+", "-", "*", "!", "/", "#", "%");
随机播放这些标记:
Collections.shuffle(tokens);
最后在迭代网格时添加它们:
int i = 0, j = 0;
for (final String token : tokens) {
theGrid[i][j] = token;
if (++j == 4) {
j = 0;
++i;
}
}
<小时/>
完整示例:
final String[][] theGrid = new String[4][4];
final List<String> tokens = Arrays.asList("?", "+", "-", "*", "!", "/", "#", "%", "?", "+", "-", "*", "!", "/", "#", "%");
Collections.shuffle(tokens);
int i = 0, j = 0;
for (final String token : tokens) {
theGrid[i][j] = token;
if (++j == 4) {
j = 0;
++i;
}
}
用法:
for (final String[] row : theGrid) {
for (final String column : row) {
System.out.print(column);
}
System.out.println();
}
示例输出(每次都会更改):
?!!%
+*--
#/#%
*/?+
关于java - 用元素随机填充网格的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21619577/