我有以下java代码,它应该在一个套牌中"洗牌".甲板是一个包含卡片对象的arraylist.
private void ShuffleDeck() {
//Number of cards in deck
int deckSize = deck.size();
//Swapping 100 cards
for(int i = 0; i < 15; i++) {
//Generating two random card indexes
int indexA = (int) ((Math.random() * deckSize-1));
int indexB = (int) (Math.random() * deckSize-1);
System.out.println(indexA + " " + indexB);
//Getting objects
Card cardA = deck.get(indexA);
Card cardB = deck.get(indexB);
//Temporaily removing these cards from deck
deck.remove(cardA);
deck.remove(cardB);
//Swapping around the two cards
deck.add(indexA, cardB);
deck.add(indexB, cardA);
}
}
Run Code Online (Sandbox Code Playgroud)
然而,当我运行这种方法时,一些卡似乎从卡座上"消失"......有什么建议为什么会这样?:)
假设deck是List<Card>(包括ArrayList等):
public void shuffleDeck() { // please use camelCase method names
Collections.shuffle(deck);
}
Run Code Online (Sandbox Code Playgroud)
不要重新发明轮子.
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |