[英]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.