除了在我洗牌後試圖顯示牌組以外,一切都在這裏工作。我不確定爲什麼,但陣列列表似乎在洗牌後是空的。如果我將混排代碼註釋掉,甲板顯然會顯示,但不會顯示。由於這是一項任務,我需要我的程序保持相同的通用格式,而混洗算法需要儘可能保持相同。使用不顯示列表列表的牌洗牌的輸出
public class Shuffler
{
public static void selectionShuffle(ArrayList<Card> values) {
ArrayList<Card> shuffled = new ArrayList<Card>();
ArrayList<Card> copy = new ArrayList<Card>();
for (int k = 51; k >= 0;) {
int r = (int)(Math.random() * (double)52);
if (r < values.size()) {
shuffled.add(values.get(r));
values.remove(r);
k--;
}
}
for (int i = 0; i < values.size(); i++) {
values.set(i, shuffled.get(i));
}
}
這裏是甲板構造函數,它創建一個甲板出三個陣列以形成三個卡對象。
public class Deck
{
public static ArrayList<Card> cards = new ArrayList<Card>();
private int size;
public Deck(String[] ranks, String[] suits, int[] values)
{
for (int i = 0; i < values.length; i++) {
cards.add(new Card(ranks[i], suits[i], values[i]));
}
size = values.length;
shuffle();
}
public void shuffle() {
Shuffler.selectionShuffle(cards);
size = size();
}
}
什麼是「複製」變量? – aioobe 2014-12-02 14:47:57
垃圾。昨天晚上我正在測試,並在今天早上突然冒出來之前忘記清除垃圾。 – LordValkyrie 2014-12-02 14:55:48
考慮爲隨機索引生成器使用Random.nextInt()。 – user1717259 2014-12-02 14:58:07