COMP 220 iLab
1 Two-Dimensional Arrays Lab Report and Source Code
BlackJack Table
Specification: Include a brief description of what the program
accomplishes, including its input, key processes, and output.
There is always a dealer in the game. At the start of the game,
the dealerâs first card will not be shown or displayed. The second card will be
displayed. The dealer may draw additional cards. The dealer must use a
random-number generator to determine the maximum number of cards the dealer
will drawâa value between 0 and 3. In other words, the dealer is a computer
player. The dealer does not show all the cards or the total until all the
players have either gone bust (over 21) or hold (no more cards drawn). There
must be at least one other player (you) and up to a maximum of four other
players (all played by you).
. On a playerâs turn, that player may either draw a card or hold.
Once a player holds, he or she should not be asked to draw another card during
this game.
All the cards for each player, including the first card dealt, are
displayed, along with the suit symbol: spades ?, clubs ?, hearts ?, or diamonds
?. Each game will start with a new, 52-card deck, which is modeled on a real
deck of cards.
. The card deck has 52 cards with no jokers.
The card deck is represented by a two-dimensional array of
data-type character, where the first dimension represents the suit and the
second dimension represents the card in the suit, such as the following. i.
char CardDeck[4][13]; At the start of each game, each element of the
two-dimensional array is initialized to a value of â â, or the âspaceâ character.
The deck has four suits, represented by the following dimension indices.
.
i. ii. iii. Each suit has 13 cards: 2, 3, 4, 5, 6, 7, 8,9 ,10,
jack, queen, king, and ace. Each card in a suit is represented by the following
dimension indices.
. 2 card
i. 3 card ii. 4 card iii. 5 card iv. 6 card v. 7 card vi. 8 card
vii. 9 card viii. 10 card ix. jack x. queen xi. king xii. ace All the number
cards are worth their face value (i.e., a 3 of diamonds is worth 3). All face
cards are worth 10. An ace is worth either 1 or 11. Your final-score
calculation must be able to handle this correctly for both the dealer and each
player. A random-number generator must be used to select the suit and the card
in the suit.
. Once a card and suit are selected, the program should check if
the value of that array element is a âspace.â
If the array set the element equal to an integer, identifying the
dealer or the player. 1 2 3 4 If the array element ! = âspace,â then the
random-number and card-checking process should repeat until a âcardâ or an
array element is selected that Once a card is drawn during a game, it cannot be
drawn again. When the program first starts, it should prompt the user, asking
if he or she wants to play a game of Blackjack or exit the program. If the user
inputs to play the game, the next decision should be 1, 2, 3, or 4 players. At
the start of the game, the dealer and each player should be dealt two cards.
One of the dealerâs cardâs value and suit should not be displayed. The number
of cards that the dealer will draw during a game should be determined by a
random-number generator that will return a value of 0, 1, 2, or 3 cards to be
drawn. Each player may then draw a card or hold. If, after drawing a card, any
player or the dealer goes over a score of 21, he or she is not allowed to draw
any more cards during the game. Once a player holds, he or she should not be
asked to draw a card again during the game. The game continues until one of the
following conditions occur:
. all players have declared hold;
all players and the dealer have gone over 21; a maximum of five
cards total are held by any player at the end of a round of card draws; or any
combination of the above. The display should show each playerâs (and the
dealerâs) hand and update the display after each round of card draws.
spades ?, clubs ?, hearts ?, and diamonds ?
Example
Card 1
Card 2
Card 3
Card 4 Card 5
Dealer:
?
10?
Player 1:
A?
2?
Player 2:
J?
Q?
Player 3:
3?
8?
At the end of a game, the display should be repeated, with the
addition of win or lose and an updated balance.
Example
Card 1
Card 2
Card 3
Card 4
Card 5
Total
Stats
Dealer:
J?
10?
20
Lose
Player 1:
K?
2?
5?
1?
5?
23
Lose
Player 2:
J?
Q?
20
Lose
Player 3:
3?
8?
K?
21
Win!
The program should then ask each player if he or she wants to play
again or leave the game. The game continues with a new round, as long as there
is one player remaining. If there are no remaining players, the program should
exit.