Deck of Cards
The project includes two classes:
·
Card – a Card object is a standard
(non-graphical) playing card.
·
Deck – maintains a list of Card objects.
You will only modify the Card class for Problem 1. All other work will be done in the Deck class.
Problem 1: Write
an equals method in the Card class. Two
cards are equal if they have the same rank and
the same suit. Your equals method must
be the standard Java equals method:
public boolean
equals(Object obj)
Problem 2: In the
Deck class, I have already included an initDeck method to fill the list with 52
cards. When you create a Deck object,
the constructor will call the initDeck method to ensure that the deck starts
will all 52 cards.
Write the printDeck method.
This should be very easy. All it
does is traverse the list and print all the cards on the Terminal screen.
TEST YOUR METHOD
by adding a main method to your Deck class that creates a Deck object and calls
the printDeck method. Be sure to test
each method in this lab.
Problem 3: Write
the shuffle method. You may use the
following algorithm:
Traverse the list of cards:
For each card, move it
to a randomly selected index
You move the card by removing it from the list and adding it
back into the list at a different index.
You can use the ArrayList add method that lets you specify where to add
the object. (Google “Java ArrayList” and
look at the Oracle page on the ArrayList to find the correct add method.)
Question: How do you generate random numbers using Java?
Answer: You don’t.
Computers can’t do anything randomly.
Ha!
Question: Okaaay…how do you generate pseudo-random numbers using Java?
Answer: Ah, that’s easy enough. Just use the Random class.
You can read about the Random class and figure out how to
use it to generate the random numbers you need: http://docs.oracle.com/javase/8/docs/api/java/util/Random.html.
Problem 4: Write
the getCard method that just returns the card at the top of the deck. Be sure to remove the card from the deck as
well.
Problem 5: Write
the getManyCards method that returns an ArrayList of cards. The parameter specifies how many cards to
include in the list. The cards in the list
should be taken from the top of the deck (you can call the getCard method for
each card). Be sure to remove the cards
from the deck as well.
Note that this method creates a new list of cards. It should not return the cardDeck list.
Get Free Quote!
269 Experts Online