diff --git a/src/CardGame.java b/src/CardGame.java index 05d025b..b5d8943 100644 --- a/src/CardGame.java +++ b/src/CardGame.java @@ -1,6 +1,4 @@ import java.util.ArrayList; -import java.util.Collections; -import java.util.Random; public class CardGame { public Player[] players; @@ -13,7 +11,7 @@ public class CardGame { */ public CardGame(int numberOfCards, int numberOfPlayers) { Pile deck = createDeck(numberOfCards); - shuffleArray(deck); + deck.shuffle(); this.players = new Player[numberOfPlayers]; draws = new Card[numberOfPlayers]; int cardsPerPlayer = deck.size() / numberOfPlayers; @@ -78,17 +76,4 @@ public class CardGame { } return true; } - - /** - * Fisher-Yates shuffle() - * https://stackoverflow.com/questions/1519736/random-shuffling-of-an-array - */ - private static void shuffleArray(Pile pile) - { - Random random = new Random(); - for (int i = pile.size() - 1; i > 0; i--) - { - Collections.swap(pile, i, random.nextInt(i + 1)); - } - } } diff --git a/src/Pile.java b/src/Pile.java index e1c1d99..3c8f252 100644 --- a/src/Pile.java +++ b/src/Pile.java @@ -1,4 +1,6 @@ import java.util.ArrayList; +import java.util.Collections; +import java.util.Random; public class Pile extends ArrayList { public void addAll(Card[] cards) { @@ -14,4 +16,17 @@ public class Pile extends ArrayList { } return cardsForPlayer; } + + /** + * Fisher-Yates shuffle() + * https://stackoverflow.com/questions/1519736/random-shuffling-of-an-array + */ + public void shuffle() + { + Random random = new Random(); + for (int i = this.size() - 1; i > 0; i--) + { + Collections.swap(this, i, random.nextInt(i + 1)); + } + } } diff --git a/src/Player.java b/src/Player.java index 0e4744e..bd2cc3b 100644 --- a/src/Player.java +++ b/src/Player.java @@ -26,7 +26,7 @@ public class Player { if (getDiscardPile().isEmpty()) { throw new NoMoreCardsException(); } - shuffle(discardPile, new Random()); + discardPile.shuffle(); drawPile.addAll(discardPile); discardPile.clear(); }