簡體   English   中英

紙牌游戲大戰

[英]The Card Game War With processing

好的,所以我在課堂上玩的是紙牌游戲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);

上面的代碼片段將從列表中獲取一個預初始化的值並將其刪除,因此不會再次“生成”該值。

在處理中,您不需要導入隨機。

您有可用的隨機方法:

random(10);

這將為您提供0.0到9.9之間的隨機數。

random(2, 4);

這將為您提供2.0到3.9之間的隨機數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM