2011-04-30 78 views
0

我已经写了一个甲板类,现在必须洗牌,然后打印出几只手来检查它是如何工作的。然而,它似乎没有洗牌,而是给出了完全相同的套牌。试图洗牌“甲板”类,似乎没有洗牌

public void makeHands() { 
    Deck deck = new Deck(); 
    Deck shuffled = shuffleDeck (deck); 
    printDeck (subdeck (shuffled, 0, 4)); 
    printDeck (subdeck (shuffled, 5, 9)); 
    printDeck (subdeck (shuffled, 10, 14)); 
    printDeck (subdeck (shuffled, 15, 19)); 
} 

public static int randomInt (int length, int i) { 
    double x = Math.random() * length; 
    int g = (int) x; 
    return g; 
} 

public Deck shuffleDeck (Deck deck) { 
    for (int i=0; i<deck.cards.length; i++) { 
     int g = randomInt (deck.cards.length, i); 
     swapCards (i, g); 
    } 
    return deck; 
} 
} 


public void swapCards (int first, int swap) { 
     Card temp = cards[first]; 
     cards[first] = cards[swap]; 
     cards[swap] = temp; 
} 
+4

功课? ..... – Prescott 2011-04-30 03:00:22

回答

2

该代码看起来不完整。

看起来您需要将deck对象传递给swapCards方法。

swapCards()指的是卡片数组。目前尚不清楚这个数组在哪里声明。相反,你应该将甲板传递给这个方法并交换deck.cards [first]和deck.cards [swap]。