纸牌游戏大战与处理

时间:2013-11-07 16:45:35

标签: java arrays processing

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);
       }
   }

2 个答案:

答案 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之间的随机数。