Ok所以在我班上正在开发卡片游戏War但是我必须使用处理,我需要创建一个非重复的随机数生成器来实现这一点。我知道在常规IDE中我可以使用Collection.shuffle
但处理没有任何人知道如何制作随机非重复数字
void mousePressed() {
imageMode(CENTER);
isDraw = true;
isDraw2 = true;
if(isDraw){
int n = int(random(card.length));
/// I should make this an array but Collection.shuffle
/// doesn't work
for (int i = 0; i < 14; i++) {
if (n == i) {
Card[i] = false;
println(n+1+" human "+Card[i]);
}
if (Card[n]) {
image(card[n], width/2, height/2-120);
}
}
答案 0 :(得分:3)
导入java.util.Random
import java.util.Random;
这段代码将在0到100之间随机获得。
Random random = new Random();
random.nextInt(100); //Get random between 0 and 100.
建议您在方法外创建一个Random,如果需要多次调用该方法,方法会使用它。
如果您不想生成重复值,请在列表中初始化它们。
List<Integer> values = new ArrayList<Integer>();
//fill with 0 to 10 elements.
然后调用方法来获取随机
Integer rand = random.nextInt(values.size());
Integer cardId = values.get(rand);
values.remove(rand);
上面的代码片段将从列表中获取一个预初始化的值并将其删除,以便它不会再次“生成”。
答案 1 :(得分:0)
在处理过程中,您无需导入随机。
您可以使用随机方法:
random(10);
这将为您提供介于0.0和9.9之间的随机数。
random(2, 4);
这将为您提供2.0到3.9之间的随机数。