I am writing code for a deck of cards that shuffle a deck of cards. I tested the code, but I really donβt know if it really does what it should do right? What do you think?
This is the code for the shuffle method:
public void shuffle() { for( int x = myDeck.size(); x > 0 ; x--) { Random rn = new Random(); int index1 = rn.nextInt(52); Card c = myDeck.remove(index1); myDeck.add(c); } }
My result seems to be shuffled in its numbers, but not by the name of the card, like hearts with peaks, etc.,
For example, this is my conclusion when I check the code:
Deuce of spades Seven of spades Eight of spades Ace of spades Three of hearts Five of hearts Six of hearts Seven of hearts Nine of hearts Ten of hearts Queen of hearts King of hearts Ace of hearts Seven of diamonds Eight of diamonds Jack of diamonds King of diamonds Three of clubs Seven of clubs Nine of clubs Jack of clubs Queen of clubs King of clubs Ace of clubs Queen of spades Deuce of clubs Three of spades Nine of diamonds Four of spades Four of clubs Deuce of hearts Jack of spades Ten of clubs Six of diamonds Jack of hearts Six of clubs Four of diamonds Five of diamonds Ace of diamonds Four of hearts Nine of spades Ten of spades Five of spades Three of diamonds Six of spades Five of clubs Deuce of diamonds Eight of hearts King of spades Ten of diamonds Eight of clubs Queen of diamonds
As always duplicate names. this is wrong, since the shuffle point is to mix it?
This is a topical issue: when playing cards, of course, it is important to shuffle the deck, that is, arrange things so that the cards are dealt in random order. There are several ways to achieve this. One strategy involves repeatedly selecting a card randomly from the deck and moving it to the end. The following code uses the Random class (which you met on page 8 of the ArrayLists section of the online course) to perform one select and move to the end operation:
Random rn = new Random(); int index1 = rn.nextInt( 52 ); Card c = myDeck.remove( index1 ); myDeck.add( c );
To effectively shuffle the deck, this operation should be repeated many times (say, 500 times). Create a new shuffle instance method for the Deck class that uses one random object and a for loop to shuffle myDeck. After modifying the main method accordingly, use it to test your new code.
So my main question is: am I doing this wrong?
Panthy
source share