Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Sample output : java PJ4.Decks ******* Create 2 decks of cards ********* ************************************************ Loop # 0 Before shuffle:104 cards [A Clubs, 2 Clubs, 3 Clubs,

Sample output : java PJ4.Decks ******* Create 2 decks of cards ********* ************************************************ Loop # 0 Before shuffle:104 cards [A Clubs, 2 Clubs, 3 Clubs, 4 Clubs, 5 Clubs, 6 Clubs, 7 Clubs, 8 Clubs, 9 Clubs, 10 Clubs, J Clubs, Q Clubs, K Clubs, A Diamonds, 2 Diamonds, 3 Diamonds, 4 Diamonds, 5 Diamonds, 6 Diamonds, 7 Diamonds, 8 Diamonds, 9 Diamonds, 10 Diamonds, J Diamonds, Q Diamonds, K Diamonds, A Hearts, 2 Hearts, 3 Hearts, 4 Hearts, 5 Hearts, 6 Hearts, 7 Hearts, 8 Hearts, 9 Hearts, 10 Hearts, J Hearts, Q Hearts, K Hearts, A Spades, 2 Spades, 3 Spades, 4 Spades, 5 Spades, 6 Spades, 7 Spades, 8 Spades, 9 Spades, 10 Spades, J Spades, Q Spades, K Spades, A Clubs, 2 Clubs, 3 Clubs, 4 Clubs, 5 Clubs, 6 Clubs, 7 Clubs, 8 Clubs, 9 Clubs, 10 Clubs, J Clubs, Q Clubs, K Clubs, A Diamonds, 2 Diamonds, 3 Diamonds, 4 Diamonds, 5 Diamonds, 6 Diamonds, 7 Diamonds, 8 Diamonds, 9 Diamonds, 10 Diamonds, J Diamonds, Q Diamonds, K Diamonds, A Hearts, 2 Hearts, 3 Hearts, 4 Hearts, 5 Hearts, 6 Hearts, 7 Hearts, 8 Hearts, 9 Hearts, 10 Hearts, J Hearts, Q Hearts, K Hearts, A Spades, 2 Spades, 3 Spades, 4 Spades, 5 Spades, 6 Spades, 7 Spades, 8 Spades, 9 Spades, 10 Spades, J Spades, Q Spades, K Spades] ============================================== After shuffle:104 cards [9 Hearts, 7 Hearts, 6 Diamonds, K Diamonds, 8 Diamonds, 5 Hearts, 5 Diamonds, J Clubs, 2 Diamonds, 10 Spades, 4 Diamonds, A Clubs, 8 Spades, K Hearts, 9 Spades, 7 Diamonds, 6 Diamonds, K Spades, 8 Clubs, 9 Spades, 6 Clubs, 8 Clubs, 2 Hearts, A Clubs, Q Hearts, J Hearts, 2 Diamonds, Q Hearts, A Diamonds, 7 Diamonds, 5 Clubs, 6 Clubs, K Hearts, J Hearts, J Clubs, 3 Spades, 3 Diamonds, 3 Clubs, 2 Hearts, 8 Hearts, 8 Diamonds, 8 Spades, A Diamonds, 3 Clubs, 6 Hearts, 3 Hearts, 4 Spades, 4 Clubs, 8 Hearts, 2 Spades, 4 Spades, K Clubs, 5 Hearts, 5 Spades, Q Spades, K Diamonds, 5 Diamonds, 3 Diamonds, J Spades, 2 Clubs, 2 Spades, 2 Clubs, 3 Hearts, 9 Diamonds, 9 Clubs, 7 Hearts, Q Diamonds, 10 Clubs, J Diamonds, 10 Diamonds, 5 Clubs, K Spades, J Spades, 9 Hearts, K Clubs, A Hearts, 4 Hearts, 9 Clubs, 10 Spades, 6 Hearts, 10 Diamonds, 6 Spades, A Spades, J Diamonds, Q Spades, Q Clubs, A Hearts, 7 Clubs, 4 Clubs, 7 Clubs, Q Clubs, 7 Spades, A Spades, 6 Spades, 7 Spades, 4 Diamonds, 10 Hearts, 9 Diamonds, 4 Hearts, Q Diamonds, 10 Clubs, 3 Spades, 10 Hearts, 5 Spades] Hand 0:30 cards [5 Spades, 10 Hearts, 3 Spades, 10 Clubs, Q Diamonds, 4 Hearts, 9 Diamonds, 10 Hearts, 4 Diamonds, 7 Spades, 6 Spades, A Spades, 7 Spades, Q Clubs, 7 Clubs, 4 Clubs, 7 Clubs, A Hearts, Q Clubs, Q Spades, J Diamonds, A Spades, 6 Spades, 10 Diamonds, 6 Hearts, 10 Spades, 9 Clubs, 4 Hearts, A Hearts, K Clubs] Remain:74 cards [9 Hearts, 7 Hearts, 6 Diamonds, K Diamonds, 8 Diamonds, 5 Hearts, 5 Diamonds, J Clubs, 2 Diamonds, 10 Spades, 4 Diamonds, A Clubs, 8 Spades, K Hearts, 9 Spades, 7 Diamonds, 6 Diamonds, K Spades, 8 Clubs, 9 Spades, 6 Clubs, 8 Clubs, 2 Hearts, A Clubs, Q Hearts, J Hearts, 2 Diamonds, Q Hearts, A Diamonds, 7 Diamonds, 5 Clubs, 6 Clubs, K Hearts, J Hearts, J Clubs, 3 Spades, 3 Diamonds, 3 Clubs, 2 Hearts, 8 Hearts, 8 Diamonds, 8 Spades, A Diamonds, 3 Clubs, 6 Hearts, 3 Hearts, 4 Spades, 4 Clubs, 8 Hearts, 2 Spades, 4 Spades, K Clubs, 5 Hearts, 5 Spades, Q Spades, K Diamonds, 5 Diamonds, 3 Diamonds, J Spades, 2 Clubs, 2 Spades, 2 Clubs, 3 Hearts, 9 Diamonds, 9 Clubs, 7 Hearts, Q Diamonds, 10 Clubs, J Diamonds, 10 Diamonds, 5 Clubs, K Spades, J Spades, 9 Hearts] ============================================== After shuffle:74 cards [2 Hearts, Q Hearts, 6 Clubs, 8 Diamonds, 6 Clubs, 8 Hearts, J Spades, J Spades, 2 Diamonds, 3 Diamonds, 3 Clubs, 5 Clubs, 7 Diamonds, 9 Diamonds, 2 Diamonds, 2 Clubs, 4 Spades, K Hearts, 2 Spades, 4 Clubs, Q Diamonds, 3 Diamonds, K Clubs, 7 Diamonds, 2 Clubs, 10 Diamonds, K Spades, J Clubs, 8 Diamonds, 5 Diamonds, J Diamonds, 6 Diamonds, 8 Hearts, 4 Diamonds, 5 Hearts, J Clubs, 3 Clubs, 9 Spades, 3 Hearts, 9 Hearts, 7 Hearts, A Diamonds, 7 Hearts, 2 Hearts, J Hearts, 9 Spades, A Diamonds, 8 Spades, K Hearts, K Diamonds, 8 Spades, 10 Clubs, K Diamonds, 8 Clubs, A Clubs, 10 Spades, 5 Clubs, 5 Hearts, J Hearts, 9 Clubs, Q Spades, A Clubs, 8 Clubs, 3 Spades, 9 Hearts, 6 Hearts, 2 Spades, 3 Hearts, Q Hearts, 5 Diamonds, 4 Spades, 5 Spades, K Spades, 6 Diamonds] Hand 1:30 cards [6 Diamonds, K Spades, 5 Spades, 4 Spades, 5 Diamonds, Q Hearts, 3 Hearts, 2 Spades, 6 Hearts, 9 Hearts, 3 Spades, 8 Clubs, A Clubs, Q Spades, 9 Clubs, J Hearts, 5 Hearts, 5 Clubs, 10 Spades, A Clubs, 8 Clubs, K Diamonds, 10 Clubs, 8 Spades, K Diamonds, K Hearts, 8 Spades, A Diamonds, 9 Spades, J Hearts] Remain:44 cards [2 Hearts, Q Hearts, 6 Clubs, 8 Diamonds, 6 Clubs, 8 Hearts, J Spades, J Spades, 2 Diamonds, 3 Diamonds, 3 Clubs, 5 Clubs, 7 Diamonds, 9 Diamonds, 2 Diamonds, 2 Clubs, 4 Spades, K Hearts, 2 Spades, 4 Clubs, Q Diamonds, 3 Diamonds, K Clubs, 7 Diamonds, 2 Clubs, 10 Diamonds, K Spades, J Clubs, 8 Diamonds, 5 Diamonds, J Diamonds, 6 Diamonds, 8 Hearts, 4 Diamonds, 5 Hearts, J Clubs, 3 Clubs, 9 Spades, 3 Hearts, 9 Hearts, 7 Hearts, A Diamonds, 7 Hearts, 2 Hearts] ============================================== After shuffle:44 cards [J Spades, 3 Clubs, 7 Hearts, 5 Clubs, J Clubs, 4 Spades, A Diamonds, J Spades, 2 Spades, 7 Diamonds, 6 Diamonds, 9 Hearts, J Clubs, 3 Clubs, 2 Diamonds, 5 Diamonds, 2 Hearts, 2 Clubs, 8 Hearts, 2 Clubs, 10 Diamonds, 9 Spades, K Clubs, J Diamonds, Q Diamonds, 4 Diamonds, 5 Hearts, 4 Clubs, 3 Diamonds, 3 Diamonds, Q Hearts, 7 Hearts, 6 Clubs, 8 Diamonds, 2 Hearts, 6 Clubs, 7 Diamonds, 8 Diamonds, 9 Diamonds, K Spades, K Hearts, 2 Diamonds, 3 Hearts, 8 Hearts] Hand 2:30 cards [8 Hearts, 3 Hearts, 2 Diamonds, K Hearts, K Spades, 9 Diamonds, 8 Diamonds, 7 Diamonds, 6 Clubs, 2 Hearts, 8 Diamonds, 6 Clubs, 7 Hearts, Q Hearts, 3 Diamonds, 3 Diamonds, 4 Clubs, 5 Hearts, 4 Diamonds, Q Diamonds, J Diamonds, K Clubs, 9 Spades, 10 Diamonds, 2 Clubs, 8 Hearts, 2 Clubs, 2 Hearts, 5 Diamonds, 2 Diamonds] Remain:14 cards [J Spades, 3 Clubs, 7 Hearts, 5 Clubs, J Clubs, 4 Spades, A Diamonds, J Spades, 2 Spades, 7 Diamonds, 6 Diamonds, 9 Hearts, J Clubs, 3 Clubs] ============================================== After shuffle:14 cards [A Diamonds, 5 Clubs, 9 Hearts, 6 Diamonds, J Clubs, J Spades, 2 Spades, 3 Clubs, J Clubs, 7 Diamonds, 7 Hearts, J Spades, 3 Clubs, 4 Spades] Hand 3:30 cards *** In catch block:PlayingCardException:Error Msg: Not enough cards to deal ************************************************ Loop # 1 Before shuffle:104 cards [A Clubs, 2 Clubs, 3 Clubs, 4 Clubs, 5 Clubs, 6 Clubs, 7 Clubs, 8 Clubs, 9 Clubs, 10 Clubs, J Clubs, Q Clubs, K Clubs, A Diamonds, 2 Diamonds, 3 Diamonds, 4 Diamonds, 5 Diamonds, 6 Diamonds, 7 Diamonds, 8 Diamonds, 9 Diamonds, 10 Diamonds, J Diamonds, Q Diamonds, K Diamonds, A Hearts, 2 Hearts, 3 Hearts, 4 Hearts, 5 Hearts, 6 Hearts, 7 Hearts, 8 Hearts, 9 Hearts, 10 Hearts, J Hearts, Q Hearts, K Hearts, A Spades, 2 Spades, 3 Spades, 4 Spades, 5 Spades, 6 Spades, 7 Spades, 8 Spades, 9 Spades, 10 Spades, J Spades, Q Spades, K Spades, A Clubs, 2 Clubs, 3 Clubs, 4 Clubs, 5 Clubs, 6 Clubs, 7 Clubs, 8 Clubs, 9 Clubs, 10 Clubs, J Clubs, Q Clubs, K Clubs, A Diamonds, 2 Diamonds, 3 Diamonds, 4 Diamonds, 5 Diamonds, 6 Diamonds, 7 Diamonds, 8 Diamonds, 9 Diamonds, 10 Diamonds, J Diamonds, Q Diamonds, K Diamonds, A Hearts, 2 Hearts, 3 Hearts, 4 Hearts, 5 Hearts, 6 Hearts, 7 Hearts, 8 Hearts, 9 Hearts, 10 Hearts, J Hearts, Q Hearts, K Hearts, A Spades, 2 Spades, 3 Spades, 4 Spades, 5 Spades, 6 Spades, 7 Spades, 8 Spades, 9 Spades, 10 Spades, J Spades, Q Spades, K Spades] ============================================== After shuffle:104 cards [2 Spades, 8 Diamonds, 7 Diamonds, 4 Diamonds, Q Hearts, A Clubs, J Spades, 9 Clubs, J Clubs, 2 Clubs, 4 Hearts, 7 Hearts, A Spades, 8 Clubs, A Diamonds, 3 Diamonds, 6 Clubs, K Diamonds, 9 Diamonds, 9 Diamonds, 6 Clubs, 7 Spades, 2 Hearts, A Clubs, 6 Hearts, 9 Clubs, K Spades, A Diamonds, 3 Diamonds, 5 Spades, K Hearts, 2 Hearts, Q Hearts, 9 Spades, 8 Spades, J Diamonds, 4 Hearts, 6 Spades, 4 Spades, Q Clubs, 3 Hearts, 3 Spades, Q Diamonds, 5 Spades, A Spades, Q Diamonds, 10 Clubs, 5 Hearts, 5 Hearts, 9 Hearts, 3 Hearts, 6 Diamonds, 2 Spades, Q Clubs, 7 Diamonds, 10 Diamonds, 2 Diamonds, 6 Diamonds, 8 Clubs, 4 Clubs, K Spades, 10 Hearts, 2 Diamonds, A Hearts, J Diamonds, 8 Hearts, 5 Clubs, A Hearts, 5 Diamonds, Q Spades, 3 Clubs, J Hearts, 3 Spades, 6 Hearts, 10 Hearts, K Diamonds, 10 Spades, 8 Hearts, J Clubs, 4 Diamonds, 10 Clubs, J Spades, 4 Clubs, 7 Clubs, 10 Spades, 5 Diamonds, 2 Clubs, 6 Spades, J Hearts, 8 Diamonds, K Clubs, 3 Clubs, 7 Spades, 9 Spades, 7 Clubs, Q Spades, K Hearts, 5 Clubs, 9 Hearts, 10 Diamonds, K Clubs, 8 Spades, 7 Hearts, 4 Spades] Hand 0:30 cards [4 Spades, 7 Hearts, 8 Spades, K Clubs, 10 Diamonds, 9 Hearts, 5 Clubs, K Hearts, Q Spades, 7 Clubs, 9 Spades, 7 Spades, 3 Clubs, K Clubs, 8 Diamonds, J Hearts, 6 Spades, 2 Clubs, 5 Diamonds, 10 Spades, 7 Clubs, 4 Clubs, J Spades, 10 Clubs, 4 Diamonds, J Clubs, 8 Hearts, 10 Spades, K Diamonds, 10 Hearts] Remain:74 cards [2 Spades, 8 Diamonds, 7 Diamonds, 4 Diamonds, Q Hearts, A Clubs, J Spades, 9 Clubs, J Clubs, 2 Clubs, 4 Hearts, 7 Hearts, A Spades, 8 Clubs, A Diamonds, 3 Diamonds, 6 Clubs, K Diamonds, 9 Diamonds, 9 Diamonds, 6 Clubs, 7 Spades, 2 Hearts, A Clubs, 6 Hearts, 9 Clubs, K Spades, A Diamonds, 3 Diamonds, 5 Spades, K Hearts, 2 Hearts, Q Hearts, 9 Spades, 8 Spades, J Diamonds, 4 Hearts, 6 Spades, 4 Spades, Q Clubs, 3 Hearts, 3 Spades, Q Diamonds, 5 Spades, A Spades, Q Diamonds, 10 Clubs, 5 Hearts, 5 Hearts, 9 Hearts, 3 Hearts, 6 Diamonds, 2 Spades, Q Clubs, 7 Diamonds, 10 Diamonds, 2 Diamonds, 6 Diamonds, 8 Clubs, 4 Clubs, K Spades, 10 Hearts, 2 Diamonds, A Hearts, J Diamonds, 8 Hearts, 5 Clubs, A Hearts, 5 Diamonds, Q Spades, 3 Clubs, J Hearts, 3 Spades, 6 Hearts] ============================================== After shuffle:74 cards [A Hearts, A Spades, 7 Spades, 6 Spades, 5 Diamonds, 8 Clubs, 5 Spades, 10 Diamonds, 7 Diamonds, Q Clubs, 3 Hearts, 6 Diamonds, 3 Diamonds, Q Clubs, 9 Clubs, 8 Diamonds, Q Hearts, K Spades, 2 Hearts, 6 Hearts, 3 Hearts, 8 Hearts, A Hearts, 3 Spades, K Diamonds, 10 Hearts, 7 Diamonds, 5 Spades, A Diamonds, 2 Clubs, A Clubs, A Spades, 5 Hearts, 2 Spades, 8 Spades, 2 Spades, J Spades, Q Hearts, 5 Clubs, 3 Spades, 3 Diamonds, 2 Hearts, A Diamonds, J Diamonds, 9 Hearts, 4 Hearts, J Diamonds, 4 Hearts, Q Diamonds, K Spades, 9 Spades, K Hearts, 6 Clubs, J Clubs, 4 Clubs, 9 Diamonds, 4 Spades, 2 Diamonds, 10 Clubs, 8 Clubs, 9 Diamonds, Q Diamonds, 6 Diamonds, 2 Diamonds, Q Spades, 9 Clubs, J Hearts, 6 Hearts, 7 Hearts, 3 Clubs, 6 Clubs, 4 Diamonds, 5 Hearts, A Clubs] Hand 1:30 cards [A Clubs, 5 Hearts, 4 Diamonds, 6 Clubs, 3 Clubs, 7 Hearts, 6 Hearts, J Hearts, 9 Clubs, Q Spades, 2 Diamonds, 6 Diamonds, Q Diamonds, 9 Diamonds, 8 Clubs, 10 Clubs, 2 Diamonds, 4 Spades, 9 Diamonds, 4 Clubs, J Clubs, 6 Clubs, K Hearts, 9 Spades, K Spades, Q Diamonds, 4 Hearts, J Diamonds, 4 Hearts, 9 Hearts] Remain:44 cards [A Hearts, A Spades, 7 Spades, 6 Spades, 5 Diamonds, 8 Clubs, 5 Spades, 10 Diamonds, 7 Diamonds, Q Clubs, 3 Hearts, 6 Diamonds, 3 Diamonds, Q Clubs, 9 Clubs, 8 Diamonds, Q Hearts, K Spades, 2 Hearts, 6 Hearts, 3 Hearts, 8 Hearts, A Hearts, 3 Spades, K Diamonds, 10 Hearts, 7 Diamonds, 5 Spades, A Diamonds, 2 Clubs, A Clubs, A Spades, 5 Hearts, 2 Spades, 8 Spades, 2 Spades, J Spades, Q Hearts, 5 Clubs, 3 Spades, 3 Diamonds, 2 Hearts, A Diamonds, J Diamonds] ============================================== After shuffle:44 cards [3 Diamonds, Q Clubs, 5 Spades, 7 Diamonds, 5 Hearts, Q Hearts, 5 Diamonds, K Spades, 2 Hearts, A Spades, 10 Diamonds, Q Hearts, 3 Hearts, A Clubs, 3 Diamonds, 3 Spades, A Hearts, 2 Hearts, 6 Diamonds, A Diamonds, 10 Hearts, J Diamonds, 6 Spades, 7 Spades, 8 Clubs, 7 Diamonds, 8 Diamonds, K Diamonds, J Spades, 8 Spades, 3 Spades, A Hearts, 5 Clubs, A Spades, 3 Hearts, 2 Spades, 2 Spades, 2 Clubs, A Diamonds, 5 Spades, 8 Hearts, Q Clubs, 6 Hearts, 9 Clubs] Hand 2:30 cards [9 Clubs, 6 Hearts, Q Clubs, 8 Hearts, 5 Spades, A Diamonds, 2 Clubs, 2 Spades, 2 Spades, 3 Hearts, A Spades, 5 Clubs, A Hearts, 3 Spades, 8 Spades, J Spades, K Diamonds, 8 Diamonds, 7 Diamonds, 8 Clubs, 7 Spades, 6 Spades, J Diamonds, 10 Hearts, A Diamonds, 6 Diamonds, 2 Hearts, A Hearts, 3 Spades, 3 Diamonds] Remain:14 cards [3 Diamonds, Q Clubs, 5 Spades, 7 Diamonds, 5 Hearts, Q Hearts, 5 Diamonds, K Spades, 2 Hearts, A Spades, 10 Diamonds, Q Hearts, 3 Hearts, A Clubs] ============================================== After shuffle:14 cards [5 Diamonds, A Clubs, 5 Hearts, 10 Diamonds, Q Hearts, Q Clubs, A Spades, K Spades, 3 Diamonds, 2 Hearts, Q Hearts, 7 Diamonds, 5 Spades, 3 Hearts] Hand 3:30 cards *** In catch block:PlayingCardException:Error Msg: Not enough cards to deal ****************************************************************************************** - Sample output : java PJ4.VideoPoker [A Spades, 10 Spades, Q Spades, J Spades, K Spades] Royal Flush! ----------------------------------- [9 Spades, 10 Spades, Q Spades, J Spades, K Spades] Straight Flush! ----------------------------------- [9 Spades, 10 Spades, Q Spades, J Spades, 8 Diamonds] Straight! ----------------------------------- [9 Spades, 10 Spades, Q Spades, J Spades, 5 Spades] Flush! ----------------------------------- [8 Spades, 8 Clubs, Q Spades, 8 Diamonds, 8 Hearts] Four of a Kind! ----------------------------------- [8 Spades, 8 Clubs, Q Spades, 8 Diamonds, J Spades] Three of a Kind! ----------------------------------- [8 Spades, 8 Clubs, J Diamonds, 8 Diamonds, J Spades] Full House! ----------------------------------- [8 Spades, 9 Diamonds, J Diamonds, 8 Diamonds, J Spades] Two Pairs! ----------------------------------- [3 Diamonds, 9 Diamonds, J Diamonds, 8 Diamonds, J Spades] Royal Pair! ----------------------------------- [3 Diamonds, 9 Diamonds, 3 Spades, 8 Diamonds, J Spades] Sorry, you lost! ----------------------------------- ****************************************************************************************** $ java TestPokerGame 1000 Payout Table Multiplier ======================================= Royal Flush | 250 Straight Flush | 50 Four of a Kind | 25 Full House | 9 Flush | 6 Straight | 5 Three of a Kind | 3 Two Pairs | 2 Royal Pair | 1 ----------------------------------- Balance:$1000 Enter bet:200 Hand:[7 Hearts, 9 Diamonds, K Diamonds, A Spades, J Hearts] Enter positions of cards to keep (e.g. 1 4 5 ): <-- replace all cards Hand:[10 Hearts, 7 Spades, 8 Diamonds, 6 Clubs, 8 Clubs] Sorry, you lost! Your balance:$800, one more game (y or n)?y Want to see payout table (y or n)y Payout Table Multiplier ======================================= Royal Flush | 250 Straight Flush | 50 Four of a Kind | 25 Full House | 9 Flush | 6 Straight | 5 Three of a Kind | 3 Two Pairs | 2 Royal Pair | 1 ----------------------------------- Balance:$800 Enter bet:200 Hand:[10 Hearts, Q Clubs, 5 Diamonds, 4 Hearts, 2 Clubs] Enter positions of cards to keep (e.g. 1 4 5 ):1 2 3 4 5 <-- keep all cards Hand:[10 Hearts, Q Clubs, 5 Diamonds, 4 Hearts, 2 Clubs] Sorry, you lost! Your balance:$600, one more game (y or n)?y Want to see payout table (y or n)n ----------------------------------- Balance:$600 Enter bet:200 Hand:[6 Diamonds, 8 Hearts, J Clubs, 5 Spades, 9 Hearts] Enter positions of cards to keep (e.g. 1 4 5 ):1 5 <-- keep 2 cards Hand:[6 Diamonds, 5 Diamonds, 3 Diamonds, 9 Diamonds, 9 Hearts] Sorry, you lost! Your balance:$400, one more game (y or n)?y Want to see payout table (y or n)200 ----------------------------------- Balance:$400 Enter bet:200 Hand:[K Spades, 4 Hearts, J Spades, J Clubs, 5 Spades] Enter positions of cards to keep (e.g. 1 4 5 ):3 4 Hand:[9 Clubs, Q Clubs, J Spades, J Clubs, 2 Clubs] Royal Pair! Your balance:$400, one more game (y or n)?y Want to see payout table (y or n)n ----------------------------------- Balance:$400 Enter bet:400 Hand:[2 Spades, 2 Diamonds, 3 Clubs, A Diamonds, 5 Hearts] Enter positions of cards to keep (e.g. 1 4 5 ):1 2 Hand:[2 Spades, 2 Diamonds, K Hearts, 4 Clubs, 9 Spades] Sorry, you lost! Your balance is 0 Bye! package PJ4; import java.util.*; /* * Ref: http://en.wikipedia.org/wiki/Video_poker * http://www.freeslots.com/poker.htm * * Short Description and Poker rules: * * Video poker is also known as draw poker. * The dealer uses a 52-card deck, which is played fresh after each playerHand. * The player is dealt one five-card poker playerHand. * After the first draw, which is automatic, you may hold any of the cards and draw * again to replace the cards that you haven't chosen to hold. * Your cards are compared to a table of winning combinations. * The object is to get the best possible combination so that you earn the highest * payout on the bet you placed. * * Winning Combinations * * 1. Jacks or Better: a pair pays out only if the cards in the pair are Jacks, * Queens, Kings, or Aces. Lower pairs do not pay out. * 2. Two Pair: two sets of pairs of the same card denomination. * 3. Three of a Kind: three cards of the same denomination. * 4. Straight: five consecutive denomination cards of different suit. * 5. Flush: five non-consecutive denomination cards of the same suit. * 6. Full House: a set of three cards of the same denomination plus * a set of two cards of the same denomination. * 7. Four of a kind: four cards of the same denomination. * 8. Straight Flush: five consecutive denomination cards of the same suit. * 9. Royal Flush: five consecutive denomination cards of the same suit, * starting from 10 and ending with an ace * */ /* This is the main poker game class. * It uses Decks and Card objects to implement poker game. * Please do not modify any data fields or defined methods * You may add new data fields and methods * Note: You must implement defined methods */ public class VideoPoker { // default constant values private static final int startingBalance=100; private static final int numberOfCards=5; // default constant payout value and playerHand types private static final int[] multipliers={1,2,3,5,6,9,25,50,250}; private static final String[] goodHandTypes={ "Royal Pair" , "Two Pairs" , "Three of a Kind", "Straight", "Flush ", "Full House", "Four of a Kind", "Straight Flush", "Royal Flush" }; // must use only one deck private static final Decks oneDeck = new Decks(1); // holding current poker 5-card hand, balance, bet private List playerHand; private int playerBalance; private int playerBet; /** default constructor, set balance = startingBalance */ public VideoPoker() { this(startingBalance); } /** constructor, set given balance */ public VideoPoker(int balance) { this.playerBalance= balance; } /** This display the payout table based on multipliers and goodHandTypes arrays */ private void showPayoutTable() { System.out.println(" "); System.out.println("Payout Table Multiplier "); System.out.println("======================================="); int size = multipliers.length; for (int i=size-1; i >= 0; i--) { System.out.println(goodHandTypes[i]+"\t|\t"+multipliers[i]); } System.out.println(" "); } /** Check current playerHand using multipliers and goodHandTypes arrays * Must print yourHandType (default is "Sorry, you lost") at the end of function. * This can be checked by testCheckHands() and main() method. */ private void checkHands() { // implement this method! } /************************************************* * add other private methods here .... * *************************************************/ public void play() { /** The main algorithm for single player poker game * * Steps: * showPayoutTable() * * ++ * show balance, get bet * verify bet value, update balance * reset deck, shuffle deck, * deal cards and display cards * ask for positions of cards to keep * get positions in one input line * update cards * check hands, display proper messages * update balance if there is a payout * if balance = O: * end of program * else * ask if the player wants to play a new game * if the answer is "no" : end of program * else : showPayoutTable() if user wants to see it * goto ++ */ // implement this method! } /************************************************* * Do not modify methods below /************************************************* /** testCheckHands() is used to test checkHands() method * checkHands() should print your current hand type */ private void testCheckHands() { try { playerHand = new ArrayList(); // set Royal Flush playerHand.add(new Card(4,1)); playerHand.add(new Card(4,10)); playerHand.add(new Card(4,12)); playerHand.add(new Card(4,11)); playerHand.add(new Card(4,13)); System.out.println(playerHand); checkHands(); System.out.println("-----------------------------------"); // set Straight Flush playerHand.set(0,new Card(4,9)); System.out.println(playerHand); checkHands(); System.out.println("-----------------------------------"); // set Straight playerHand.set(4, new Card(2,8)); System.out.println(playerHand); checkHands(); System.out.println("-----------------------------------"); // set Flush playerHand.set(4, new Card(4,5)); System.out.println(playerHand); checkHands(); System.out.println("-----------------------------------"); // "Royal Pair" , "Two Pairs" , "Three of a Kind", "Straight", "Flush ", // "Full House", "Four of a Kind", "Straight Flush", "Royal Flush" }; // set Four of a Kind playerHand.clear(); playerHand.add(new Card(4,8)); playerHand.add(new Card(1,8)); playerHand.add(new Card(4,12)); playerHand.add(new Card(2,8)); playerHand.add(new Card(3,8)); System.out.println(playerHand); checkHands(); System.out.println("-----------------------------------"); // set Three of a Kind playerHand.set(4, new Card(4,11)); System.out.println(playerHand); checkHands(); System.out.println("-----------------------------------"); // set Full House playerHand.set(2, new Card(2,11)); System.out.println(playerHand); checkHands(); System.out.println("-----------------------------------"); // set Two Pairs playerHand.set(1, new Card(2,9)); System.out.println(playerHand); checkHands(); System.out.println("-----------------------------------"); // set Royal Pair playerHand.set(0, new Card(2,3)); System.out.println(playerHand); checkHands(); System.out.println("-----------------------------------"); // non Royal Pair playerHand.set(2, new Card(4,3)); System.out.println(playerHand); checkHands(); System.out.println("-----------------------------------"); } catch (Exception e) { System.out.println(e.getMessage()); } } /* Run testCheckHands() */ public static void main(String args[]) { VideoPoker pokergame = new VideoPoker(); pokergame.testCheckHands(); } } package PJ4; import java.util.*; //================================================================================= /** class PlayingCardException: It is used for errors related to Card and Deck objects * This is a checked exception! * Do not modify this class! */ class PlayingCardException extends Exception { /* Constructor to create a PlayingCardException object */ PlayingCardException (){ super (); } PlayingCardException ( String reason ){ super ( reason ); } } //================================================================================= /** class Card : for creating playing card objects * it is an immutable class. * Rank - valid values are 1 to 13 * Suit - valid values are 1 to 4 * Do not modify this class! */ class Card { /* constant suits and ranks */ static final String[] Suit = {"","Clubs", "Diamonds", "Hearts", "Spades" }; static final String[] Rank = {"","A","2","3","4","5","6","7","8","9","10","J","Q","K"}; /* Data field of a card: rank and suit */ private int cardRank; /* values: 1-13 (see Rank[] above) */ private int cardSuit; /* values: 1-4 (see Suit[] above) */ /* Constructor to create a card */ /* throw PlayingCardException if rank or suit is invalid */ public Card(int suit, int rank) throws PlayingCardException { if ((rank < 1) || (rank > 13)) throw new PlayingCardException("Invalid rank:"+rank); else cardRank = rank; if ((suit < 1) || (suit > 4)) throw new PlayingCardException("Invalid suit:"+suit); else cardSuit = suit; } /* Accessor and toString */ /* You may impelemnt equals(), but it will not be used */ public int getRank() { return cardRank; } public int getSuit() { return cardSuit; } public String toString() { return Rank[cardRank] + " " + Suit[cardSuit]; } /* Quick tests */ public static void main(String args[]) { try { Card c1 = new Card(4,1); // A Spades System.out.println(c1); c1 = new Card(1,10); // 10 Clubs System.out.println(c1); c1 = new Card(5,10); // generate exception here } catch (PlayingCardException e) { System.out.println("PlayingCardException: "+e.getMessage()); } } } //================================================================================= /** class Decks represents : n decks of 52 playing cards * Use class Card to construct n * 52 playing cards! * * Do not add new data fields! * Do not modify any methods * You may add private methods */ class Decks { /* this is used to keep track of original n*52 cards */ private List saveDecks; /* this starts by copying all cards from saveDecks */ /* it holds remaining cards during games */ private List playDecks; /* number of 52-card decks in this object */ private int numberDecks; /** * Constructor: Creates default one deck of 52 playing cards in saveDecks and * copy them to playDecks. * initialize numberDecks=1 * Note: You need to catch PlayingCardException from Card constructor * Use ArrayList for both saveDecks & playDecks */ public Decks() { // implement this method! } /** * Constructor: Creates n 52-card decks of playing cards in * saveDecks and copy them to playDecks. * initialize numberDecks=n * Note: You need to catch PlayingCardException from Card constructor * Use ArrayList for both saveDecks & playDecks */ public Decks(int n) { // implement this method! } /** * Task: Shuffles cards in playDecks. * Hint: Look at java.util.Collections */ public void shuffle() { // implement this method! } /** * Task: Deals cards from the deal deck. * * @param numberCards number of cards to deal * @return a list containing cards that were dealt * @throw PlayingCardException if numberCards > number of remaining cards * * Note: You need to create ArrayList to stored dealt cards * and remove dealt cards from playDecks * */ public List deal(int numberCards) throws PlayingCardException { // implement this method! return null; } /** * Task: Resets playedDeck by cpoying all cards from the resetDeck. */ public void reset() { // implement this method! } /** * Task: Return number of remaining cards in deal deck. */ public int remain() { return playDecks.size(); } /** * Task: Returns a string representing cards in the deal deck */ public String toString() { return ""+playDecks; } /* Quick test */ /* */ /* Do not modify these tests */ /* Generate 2 decks of cards */ /* Loop 2 times: */ /* Deal 30 cards for 4 times */ /* Expect exception last time */ /* reset() */ public static void main(String args[]) { System.out.println("******* Create 2 decks of cards ********* "); Decks decks = new Decks(2); for (int j=0; j < 2; j++) { System.out.println(" ************************************************ "); System.out.println("Loop # " + j + " "); System.out.println("Before shuffle:"+decks.remain()+" cards"); System.out.println(" \t"+decks); System.out.println(" ============================================== "); int numHands = 4; int cardsPerHand = 30; for (int i=0; i < numHands; i++) { decks.shuffle(); System.out.println("After shuffle:"+decks.remain()+" cards"); System.out.println(" \t"+decks); try { System.out.println(" Hand "+i+":"+cardsPerHand+" cards"); System.out.println(" \t"+decks.deal(cardsPerHand)); System.out.println(" Remain:"+decks.remain()+" cards"); System.out.println(" \t"+decks); System.out.println(" ============================================== "); } catch (PlayingCardException e) { System.out.println("*** In catch block:PlayingCardException:Error Msg: "+e.getMessage()); } } decks.reset(); } } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

High School Math 2012 Common-core Algebra 2 Grade 10/11

Authors: Savvas Learning Co

Student Edition

9780133186024, 0133186024

More Books

Students also viewed these Mathematics questions