Regarding my Java poker program, would it be a smart decision to choose enum over chars and ints?
As far as I can tell, assigning a separate integer char value has the advantage of ease of use of mathematical operators when it comes to comparing map values ββto determine the winner. However, this may be possible with transfers, if so I do not know.
Please can someone explain me adv / negative?
My first option to declare card ranks is to enumerate:
public enum Rank { DEUCE (1), THREE (2), FOUR (3), FIVE (4), SIX (5), SEVEN (6), EIGHT (7), NINE (8), TEN (9), JACK (10), QUEEN (11), KING (12), ACE (13) } public enum Suit { CLUBS (1), DIAMONDS (2), HEARTS (3), SPADES (4) }
My second option is static trailing characters with assigned int values ββas such:
public static final char ACE = 'A'; public static final char TWO = '2'; public static final char THREE = '3'; public static final char FOUR = '4'; public static final char FIVE = '5'; public static final char SIX = '6'; public static final char SEVEN = '7'; public static final char EIGHT = '8'; public static final char NINE = '9'; public static final char TEN = 'T'; public static final char JACK = 'J'; public static final char QUEEN = 'Q'; public static final char KING = 'K'; public Rank (char c) { switch (c) { case TWO: _val = 0; break; case THREE: _val = 1; break; case FOUR: _val = 2; break; case FIVE: _val = 3; break; case SIX: _val = 4; break; case SEVEN: _val = 5; break; case EIGHT: _val = 6; break; case NINE: _val = 7; break; case 'T': _val = 8; break; case 'J': _val = 9; break; case 'Q': _val = 10; break; case 'K': _val = 11; break; case 'A': _val = 12; break; default: _val = -1; } }
Thanks!
silverzx
source share