01219343/unit/poker
- This exercise is part of 01219343-55.
Follow the TDD steps to write these classes.
Card
A card has a rank (A,1,...,9,10,J,Q,K) and a suit (S,H,D,C) (see suit).
Implement class Card
that supports the following methods:
- Construction with rank and suit as strings. (This might not be an efficient way to represent ranks and suits, but it simplifies the exercise.) For example:
Card card = new Card("10","S");
- Getters:
getRank
andgetSuit
. hasSameRank(Card c)
that returns true whenc
has the same rank.hasSameSuit(Card c)
that returns true whenc
has the same suit.- The class should implement interface
Comparable<Card>
so that we can easily sort the cards. Add that interface to the class and implement a public methodint compareTo(Card c)
.
Make sure you test these method thoroughly. When fixing a broken tast, write the simplest possible code that make the test passes.
Given a list of Card
s, we want to use Collections.sort
to sort the list. Make sure you have a test case that checks this requirement.
Notes: To create a list of Cards, you can use method Arrays.asList
, e.g.,
List<Card> cards = Arrays.asList(new Card("10","S"), new Card("9", "D"), new Card("A","C"));
@Before
You may see yourself creating the same objects many times inside various test methods. You can put all these initialization into one method by annotating the method with @Before
.
public class CardTest { Card S10, SA; @Before public void initCards() { S10 = new Card("10","S"); SA = new Card("A","S"); } }
Hand
Use reference of poker hands from wikipedia.