I don't understand why I'm getting such output. The output tries to recreate and reshuffle cards every time I draw initial card, but why? Since I'm checking if deck of cards is empty or is null and if it is, it is being created.
Why wouldn't my code work?
Output:
######### BLACK ### JACK #########
deal, hit, stay, exit: deal
Creating deck...
Shuffling deck...
Drawing Player's card... A_♦
Creating deck...
Shuffling deck...
Drawing Dealer's card... X_X
Creating deck...
Shuffling deck...
Drawing Player's card... 6_♥
Creating deck...
Shuffling deck...
Drawing Dealer's card... X_X
Dealers Hand: A_♦ X_X = 11
Players Hand: 6_♥ A_♦ = 17
Initial Draw method:
private static Deck initialDraw(Deck deck, Hand player, Hand dealer)
{
drawFromDeck(deck, player);
drawFromDeck(deck, dealer);
drawFromDeck(deck, player);
drawFromDeck(deck, dealer);
System.out.print("\n");
showHands(player, dealer);
compareHands(player, dealer);
return deck;
}
I don't get this output when I use following code, how is it different? I'm still referencing the same array and passing it back, no ?
private static Deck initialDraw(Deck deck, Hand player, Hand dealer)
{
deck = checkDeck(deck);
drawFromDeck(deck, player);
drawFromDeck(deck, dealer);
drawFromDeck(deck, player);
drawFromDeck(deck, dealer);
System.out.print("\n");
showHands(player, dealer);
compareHands(player, dealer);
return deck;
}