package cardgame; import java.util.Scanner; import java.util.Random; public class CardGame { public static void main(String[] args) { Scanner scan = new Scanner(System.in); Random rand = new Random(); String[] cards = {"Ace", "Two", "Three", "four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"}; String[] suits = {" of Hearts", " of Diamonds", " of Spades", " of Clubs"}; int shuffleCards = 0, shuffleSuits, playerPoints, dealerPoints, playerTotal, dealerTotal, wins, loses, pushes; String play, anotherCard, showCard, playAgain, score; StringBuilder PSB = new StringBuilder(); showCard = ""; playAgain = "y"; score = ""; playerTotal = 0; playerPoints = 0; dealerPoints = 0; dealerTotal = 0; wins = loses = pushes = 0; System.out.println("Welcome to Thirty3\n"); System.out.print("Would you like to play (Y/Q)? "); play = scan.nextLine(); if(play.equalsIgnoreCase("y")) { while(playAgain.equalsIgnoreCase("y")) { System.out.println(); System.out.print("Your cards: "); for(int a=1; a<=3; a++) { shuffleCards = rand.nextInt(cards.length-1) + 0; shuffleSuits = rand.nextInt(suits.length-1) + 0; // shuffleCards = 0; // shuffleSuits = 0; System.out.print(cards[shuffleCards] + suits[shuffleSuits] + ", "); if(shuffleCards == 1) { playerPoints = 2; } if(shuffleCards == 2) { playerPoints = 3; } if(shuffleCards == 3) { playerPoints = 4; } if(shuffleCards == 4) { playerPoints = 5; } if(shuffleCards == 5) { playerPoints = 6; } if(shuffleCards == 6) { playerPoints = 7; } if(shuffleCards == 7) { playerPoints = 8; } if(shuffleCards == 8) { playerPoints = 9; } if(shuffleCards == 9 || shuffleCards == 10 || shuffleCards == 11 || shuffleCards == 12) { playerPoints = 10; } if((shuffleCards == 10 && shuffleSuits == 2 )|| (shuffleCards == 10 && shuffleSuits == 0) || (shuffleCards == 12 && shuffleSuits == 1)) { playerPoints = 13; } if(shuffleCards == 2 && shuffleSuits == 3) { playerPoints = 0; } playerTotal = playerPoints + playerTotal; if(shuffleCards == 0 && playerTotal + 11 <= 33) { playerTotal = playerTotal + 11; } showCard = showCard.concat(cards[shuffleCards]).concat(suits[shuffleSuits].concat(", ")); } if(shuffleCards == 0 && playerTotal + 1 <= 33) { playerTotal = playerTotal + 1; } System.out.print(" (Total " + playerTotal + ")"); System.out.println(); System.out.print("Would you like another card (Y/N)? "); anotherCard = scan.nextLine(); while(anotherCard.equalsIgnoreCase("y")) { System.out.print("Your cards:" + showCard); shuffleCards = rand.nextInt(cards.length-1) + 0; shuffleSuits = rand.nextInt(suits.length-1) + 0; PSB.append(cards[shuffleCards].concat(suits[shuffleSuits]).concat(", ")); // dashes done here System.out.print(PSB.toString()); if(shuffleCards == 1) { playerPoints = 2; } if(shuffleCards == 2) { playerPoints = 3; } if(shuffleCards == 3) { playerPoints = 4; } if(shuffleCards == 4) { playerPoints = 5; } if(shuffleCards == 5) { playerPoints = 6; } if(shuffleCards == 6) { playerPoints = 7; } if(shuffleCards == 7) { playerPoints = 8; } if(shuffleCards == 8) { playerPoints = 9; } if(shuffleCards == 9 || shuffleCards == 10 || shuffleCards == 11 || shuffleCards == 12) { playerPoints = 10; } if(shuffleCards == 10 && shuffleSuits == 2 || shuffleCards == 10 && shuffleSuits == 0 || shuffleCards == 12 && shuffleSuits == 1) { playerPoints = 13; } if(shuffleCards == 2 && shuffleSuits == 3) { playerPoints = 0; } playerTotal = playerPoints + playerTotal; if(shuffleCards == 0) { if(playerTotal + 11 <= 33) { playerTotal = playerTotal + 11; } else { playerTotal = playerTotal + 1; } } System.out.print(" (Total " + playerTotal + ")"); System.out.println(); System.out.print("Would you like another card (Y/N)? "); anotherCard = scan.nextLine(); } System.out.println(); System.out.print("The dealer drew: "); while(dealerTotal <= 26) { shuffleCards = rand.nextInt(cards.length-1) + 0; shuffleSuits = rand.nextInt(suits.length-1) + 0; if(shuffleCards == 1) { dealerPoints = 2; } if(shuffleCards == 2) { dealerPoints = 3; } if(shuffleCards == 3) { dealerPoints = 4; } if(shuffleCards == 4) { dealerPoints = 5; } if(shuffleCards == 5) { dealerPoints = 6; } if(shuffleCards == 6) { dealerPoints = 7; } if(shuffleCards == 7) { dealerPoints = 8; } if(shuffleCards == 8) { dealerPoints = 9; } if(shuffleCards == 10 && shuffleSuits == 2 || shuffleCards == 10 && shuffleSuits == 0 || shuffleCards == 12 && shuffleSuits == 1) { dealerPoints = 13; } if(shuffleCards == 2 && shuffleSuits == 3) { dealerPoints = 0; } dealerTotal = dealerPoints + dealerTotal; if(shuffleCards == 0 && (dealerTotal + 11 <= 33)) { dealerTotal = dealerTotal + 11; } System.out.print(cards[shuffleCards] + suits[shuffleSuits].concat(", ")); } System.out.println(" (Total " + dealerTotal + ")"); System.out.println(); // change the conditions for win, lose // if the player is 32, and dealer is 31, player wins, who ever is closest to 33 if(playerTotal <= 33 ) { score = "win!"; wins++; } if(playerTotal > 33 && (dealerTotal > 26 && dealerTotal <= 33)) { score = "lose!"; loses++; } if(playerTotal == dealerTotal) { score = "tied!"; pushes++; } System.out.println("You " + score + " - Current Total - Wins - " + wins + " Ties - " + pushes + " Loses - " + loses); System.out.println(); System.out.print("Would you like to play again (Y/Q)? "); playAgain = scan.nextLine(); } } } }