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();
}
}