Question
Your task is to write a program that plays a simple card game with one human player and one computer player. The game uses a
Your task is to write a program that plays a simple card game with one human player and one computer player. The game uses a deck of 52 cards. Each card has a value (either a number 2 through 10 or a label jack, queen, king, or ace) and a suit (hearts, diamonds, clubs or spades).
The objective of the game is to get four cards with the same value. For example, the 8 of hearts, diamonds, clubs and spades. At the beginning of the game, the cards are shuffled and each player is given four cards. The remaining cards are placed into a queue called the draw pile. There is another pile called the discard pile that starts out empty. The discard pile is a stack (an ArrayDeque in Java).
If neither player has been dealt a winning hand, the players take turns until one of them wins. At each turn the player can either draw a new card from the draw pile or pick up the top card on the discard pile. In this game the human player always goes first. Because the discard pile starts out empty, the human player must initially pick up a card from the draw pile. After that, the human player must select a card to put into the discard pile. This can either be the card he drew or one that was already in his hand. If the human player now has four cards with the same value, he wins. Otherwise, it is the computers turn. The computer can either draw a card from the draw pile or pick up the card that the human player put onto the discard pile.
Then the computer player must place one of its cards onto the discard pile. If the computer player now has four cards with the same value, it wins. Otherwise, it is the human players turn; however, this time the human player can either take a card from the draw pile or pick up the card that the computer player put onto the discard pile. This process repeats until one player wins. At that point, the game should display the message You win! if the human player won or I win! if the computer player won. The program should then terminate. An example execution of this game is shown in the program output below
Your cards are:
Queen of Hearts
Seven of Hearts
Eight of Hearts
Seven of Diamonds
The discard pile is currently empty -- you must draw a card
You drew the Five of Spades
Now your cards are:
1. Queen of Hearts
2. Seven of Hearts
3. Eight of Hearts
4. Seven of Diamonds
5. Five of Spades
Which one do you want to discard?
1 I will draw a new card.
I will discard the Two of Spades
Your cards are:
Five of Spades
Seven of Hearts
Eight of Hearts
Seven of Diamonds
The top card in the discard pile is the Two of Spades
Do you want to pick up the Two of Spades (1) or draw a card (2)?
2
You drew the Queen of Diamonds
Now your cards are:
1. Five of Spades
2. Seven of Hearts
3. Eight of Hearts
4. Seven of Diamonds
5. Queen of Diamonds
Which one do you want to discard?
1
I will pick up the Five of Spades
I will discard the Six of Diamonds
Your cards are:
Queen of Diamonds
Seven of Hearts
Eight of Hearts
Seven of Diamonds
The top card in the discard pile is the Six of Diamonds
Do you want to pick up the Six of Diamonds (1) or draw a card (2)?
2
You drew the Five of Diamonds Now your cards are:
1. Queen of Diamonds
2. Seven of Hearts
3. Eight of Hearts
4. Seven of Diamonds
5. Five of Diamonds Which one do you want to discard?
1
I will draw a new card.
I will discard the King of Spades
Your cards are:
Five of Diamonds
Seven of Hearts
Eight of Hearts
Seven of Diamonds
The top card in the discard pile is the King of Spades
Do you want to pick up the King of Spades (1) or draw a card (2)?
2
You drew the Nine of Diamonds Now your cards are:
1. Five of Diamonds
2. Seven of Hearts
3. Eight of Hearts
4. Seven of Diamonds
5. Nine of Diamonds
Which one do you want to discard?
5
I will draw a new card.
I will discard the Queen of Spades
Your cards are:
Five of Diamonds
Seven of Hearts
Eight of Hearts
Seven of Diamonds
The top card in the discard pile is the Queen of Spades
Do you want to pick up the Queen of Spades (1) or draw a card (2)?
2
You drew the Six of Spades
Now your cards are:
1. Five of Diamonds
2. Seven of Hearts
3. Eight of Hearts
4. Seven of Diamonds
5. Six of Spades Which one do you want to discard?
5
I will draw a new card.
I will discard the Four of Clubs
Your cards are:
Five of Diamonds
Seven of Hearts
Eight of Hearts
Seven of Diamonds
The top card in the discard pile is the Four of Clubs
Do you want to pick up the Four of Clubs (1) or draw a card (2)?
2
You drew the Seven of Spades
Now your cards are:
1. Five of Diamonds
2. Seven of Hearts
3. Eight of Hearts
4. Seven of Diamonds
5. Seven of Spades Which one do you want to discard?
3
I will draw a new card.
I will discard the Ten of Diamonds
Your cards are:
Five of Diamonds
Seven of Hearts
Seven of Spades
Seven of Diamonds
The top card in the discard pile is the Ten of Diamonds
Do you want to pick up the Ten of Diamonds (1) or draw a card (2)?
2
You drew the King of Diamonds
Now your cards are:
1. Five of Diamonds
2. Seven of Hearts
3. Seven of Spades
4. Seven of Diamonds
5. King of Diamonds
Which one do you want to discard?
5 I will draw a new card.
I will discard the Three of Diamonds
Your cards are: Five of Diamonds
Seven of Hearts
Seven of Spades
Seven of Diamonds.
Your program will be graded according to this rubric (each item is worth one point):
The program creates the deck of cards, shuffles it, and gives each player four cards.
The human player is notified what card is on top of the discard pile (which is implemented as a stack), and he can either take that card or draw a card from the draw pile (which is implemented as a queue).
The human player can discard either a card that was already in his hand or the card he just acquired during his turn. This card is then placed on top of the discard pile.
The computer player is capable of both taking a card from the draw pile or picking up the card on top of the discard pile, and it does not do the same thing every time. It may choose which to do either randomly or according to some strategy, whichever you prefer.
The computer player does not always discard the same card every time (i.e. it doesnt always discard the card it just picked up). It may choose which card to discard randomly or according to some strategy, whichever you prefer.
If the draw pile becomes empty before either player has won the game, all of the cards in the discard pile are shuffled and moved back to the draw pile.
The program correctly recognizes when someone wins and displays the appropriate message.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started