有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java的纸牌游戏战争与处理

好的,在我的课堂上,我们正在研究纸牌游戏战争,但我必须使用处理,我需要创建一个不重复的随机数生成器来工作。我知道在常规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) 个答案

  1. # 1 楼答案

    导入java。util。随机的

    import java.util.Random;
    

    这段代码将得到0到100之间的随机值

    Random random = new Random();
    random.nextInt(100); //Get random between 0 and 100.
    

    建议您在方法外部创建一个随机变量,如果需要多次调用该方法,该方法将使用它

    如果不想生成重复的值,请在列表中初始化它们

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

    上面的代码片段将从列表中获取一个预初始化的值,并将其删除,这样就不会再次“生成”

  2. # 2 楼答案

    在处理过程中,不需要随机导入

    你有一个随机的方法:

    random(10);
    

    这将给你一个介于0.0和9.9之间的随机数

    random(2, 4);
    

    这将给出2.0到3.9之间的随机数