<s>[INST] In this problem, the objective is to create a computer program that plays blackjack. The game of blackjack is played as follows:
- We start with a deck of 52 cards (4 suits each of 13 cards: Ace, 2, 3, ..., 9, 10, Jack, Queen, King).
- We deal two cards each to the player and the dealer at the start of the game.
- Cards have the following values: Ace (11), 2-9 (face value), Jack, Queen, King (10).
- If the sum of the player's cards is 21 (Ace and a 10 value card or Ace and another Ace) then they have blackjack and win immediately.
- If the player's sum is less than the dealer's then the player loses if they do not draw more cards.
- The player can hit (take another card) or stand (check the hand value on its own merit) and this can be done multiple times.
- If the player's sum goes above 21, then they "bust" and lose immediately.
- Once the player stands, the dealer hits until their sum is 17 or greater. If the dealer busts, then the player wins if they haven't already bust.
- If the player's final sum is greater than the dealer's then the player wins. If the sums are equal, then it's a draw.
- If the player has a card value of 10 and an ace, then it's a draw ('push').

Using a C++ program, I want to implement this game.


Here is the black_jack_pal class declaration.

```cpp[/INST]