package blackjack; import java.util.Scanner; import java.util.Random; /** * @date Jul 16, 2012 * @author Family */ public class BlackJack { private int card1 = 0, card2 = 0, card3 = 0, card4 = 0, card5 = 0, score = 0, dealer = 0, AceAmount = 0; private String AceCard; private boolean started; private Random rand = new Random(); private Scanner in = new Scanner(System.in); public BlackJack() { started = false; System.out.println("Welcome to blackjack, coded by Jared! Type \"deal\" to start!"); if (in.next().equalsIgnoreCase("deal")) { deal(); } } public void deal() { if (started == true) { System.out.println("Sorry, you cannot deal again until you start another game!"); } else { started = true; dealer(); card1 = rand.nextInt(14); card2 = rand.nextInt(14); if (card1 == 14) { ++AceAmount; AceCard = "card1"; card1 = 11; score += 11; } else if (card1 >= 10) { card1 = 10; score += 10; } else { score += card1; } if (card2 == 14) { ++AceAmount; AceCard = "card2"; card2 = 11; score += 11; } else if (card2 >= 10) { card2 = 10; score += 10; } else { score += card2; } } System.out.println("Card 1: " + card1 + "\nCard 2: " + card2 + "\nScore: " + score); checkScore(); } public void checkScore() { if (score > 21) { if (AceAmount == 0) { System.out.println("Sorry, you busted with a score of " + score); restart(); } else { AceAmount--; score -= 10; if (AceCard.equals("card1")) { card1 = 1; } else if (AceCard.equals("card2")) { card2 = 1; } checkScore(); } } else if (score == 21) { pass(); } else { ask(); } } public void ask() { System.out.println("Hit or Pass?"); if (in.next().equalsIgnoreCase("Hit")) { hit(); } if (in.next().equalsIgnoreCase("Pass")) { pass(); } } public void hit() { if (card3 == 0) { card3(); } else if (card4 == 0 && card3 != 0) { card4(); } else if (card5 == 0 && card3 != 0 && card4 != 0) { card5(); } } public void pass() { if (score > dealer) { System.out.println("Congrats you beat the dealer with a score of " + score + " to " + dealer + "!"); restart(); } else if (score == dealer) { System.out.println("You tied the dealer with a score of " + score + "!"); restart(); } else { System.out.println("Sorry, you lost to the dealer with a score of " + score + " to " + dealer + "."); restart(); } } public void restart() { System.out.println("Type \"restart\" to play again!"); if (in.next().equalsIgnoreCase("restart")) { new BlackJack(); } } public void dealer() { if (dealer < 21) { int temp = rand.nextInt(14); if (dealer + temp < 21) { dealer += temp; dealer(); } else if (dealer + temp == 21) { dealer += temp; } } } public void card3() { card3 = rand.nextInt(14); if (card3 == 14) { if (score + 11 > 21) { card3 = 1; score += 1; } else { card3 = 11; score += 11; } } else if (card3 >= 10) { card3 = 10; score += 10; } else { score += card3; } System.out.println("Card 1: " + card1 + "\nCard 2: " + card2 + "\nCard 3: " + card3 + "\nScore: " + score); checkScore(); } public void card4() { card4 = rand.nextInt(14); if (card4 == 14) { if (score + 11 > 21) { card4 = 1; score += 1; } else { card4 = 11; score += 11; } } else if (card4 >= 10) { card4 = 10; score += 10; } else { score += card4; } System.out.println("Card 1: " + card1 + "\nCard 2: " + card2 + "\nCard 3: " + card3 + "\nCard 4: " + card4 + "\nScore: " + score); checkScore(); } public void card5() { card5 = rand.nextInt(14); if (card5 == 14) { if (score + 11 > 21) { card5 = 1; score += 1; } else { card5 = 11; score += 11; } } else if (card5 >= 10) { card5 = 10; score += 10; } else { score += card5; } System.out.println("Card 1: " + card1 + "\nCard 2: " + card2 + "\nCard 3: " + card3 + "\nCard 4: " + card4 + "\nCard 5: " + card5 + "\nScore: " + score); checkScore(); } public static void main(String[] args) { new BlackJack(); } }