import java.text.*;
import java.util.*;
// import blackjack.*;
/**
* This is the main class for the Blackjack Game.
*
* @author Bill Kukowski
*/
public class BlackjackMain
{
/**
* Main method. Controls program I/O
*
* @param args
*/
Account account;
boolean userDumb, sameHand;
Deck deck;
DecimalFormat df;
Rules rules;
Hand playerHand, dealerHand;
public static void main(String[] args)
{
BlackjackMain bjm = new BlackjackMain();
}
BlackjackMain()
{
sameHand = true;
//create deck
df = new DecimalFormat("0.00"); //used for cost display
rules = new Rules();
deck = new Deck();
deck.shuffle();
account = new Account();
while (sameHand && account.getBalance() > 0) //hand loop
{
round();
}
}
public void round() {
playerHand = new Hand();
dealerHand = new Hand();
userDumb = true;
playerHand.addCardToHand(deck.drawCard());
playerHand.addCardToHand(deck.drawCard());
dealerHand.addCardToHand(deck.drawCard());
dealerHand.addCardToHand(deck.drawCard());
Scanner scanner = new Scanner(System.in);
double amount = 0;
//getbet
while (userDumb)
{
System.out.println("You have $" + df.format(account.getBalance()) + " in your account.");
System.out.print("How much do you want to bet? ");
amount = 0;
amount = scanner.nextDouble();
if (amount <= account.getBalance())
{
account.withdraw(amount);
account.addToBet(amount);
userDumb = false;
}
else {System.out.println("You are stupid. Bet less money!" );
}
}
System.out.println("You have these cards:");
playerHand.printCards();
System.out.println("The dealer has a " + deck.getCardName(dealerHand.getCard(1)) + " showing.");
if (rules.blackjack(playerHand)) //check blackjack!
{
System.out.println("You have Blackjack!");
account.deposit(amount*2);
}
if (rules.doubleDownEnable(playerHand))//check double down
{
System.out.println("Press 1 to double down. Press 0 if you don't want to.");
if (scanner.nextInt() == 1)
{
rules.doubleDown(account, amount, playerHand, deck);
System.out.println("You now have these cards.");
playerHand.printCards();
}
}
while (playerHand.getHandTotal() < 21) //enable hit while player has less than 21
{
System.out.println("Press 1 to hit, 2 to stand.");
if (scanner.nextInt() == 1)
{
playerHand.addCardToHand(deck.drawCard());
System.out.println("You now have these cards.");
playerHand.printCards();
}
if (playerHand.getHandTotal() > 21) {
System.out.println("bust!");
sameHand = false;
}
}
}
}