java - 卡牌游戏与处理的 war

标签 java arrays processing

好吧,我的类(class)正在研究纸牌游戏 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);
       }
   }

最佳答案

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

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

关于java - 卡牌游戏与处理的 war ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19841707/

相关文章:

java - 使用多线程读取30GB文件

javascript - 如果对象中最初没有 var x,那么 for(var x in object) 如何工作?

java - 找到与方向无关的两个 vector 的交点

Java REST 服务接受 POJO,但字段始终为空

java - 难以使用 Ant 构建 Pig

java - 无法使用 JavaMail 发送任何邮件

解析 CSS 的 Javascript 正则表达式

arrays - 在 .txt 文件中搜索数组 VB.net

android - 处理 - 错误

java - 在 Java 应用程序中使用处理