For this project, you will implement a JavaFX-based two-player (human vs. computer) version of the Uno Sesame Street version.
You will need to use many or all of the techniques covered in class this semester, like arrays, classes, inheritance and polymorphism, and GUI programming.
Uno is an American card game that is played with a specially printed deck originally developed in 1971 by Merle Robbins in Reading, Ohio, and it has been a Mattel brand since 1992.
The objective of the game is to be the first player to get rid of all the cards in your hand. The first player to get rid of ALL their cards wins the game!
The game contains 36 UNO Cards with Sesame Street Characters:
(4) Big Bird #1 cards (red, yellow, blue, green)
(4) Zoe #2 cards (red, yellow, blue, green)
(4) Cookie Monster #3 cards (red, yellow, blue, green)
(4) Elmo #4 cards (red, yellow, blue, green)
(4) Baby Bear #5 cards (red, yellow, blue, green)
(4) Rosita #6 cards (red, yellow, blue, green)
(4) Grover #7 cards (red, yellow, blue, green)
(2) Ernie and Bert "Draw 1" cards (red, blue)
(2) Oscar the Grouch "Choose who to draw 2" cards (yellow, green)
(4) Monster "Wild" cards
Game Setup:
1. Shuffle the cards.
2. Each player draws a card. The player with the highest card number starts first.
3. Reshuffle all the cards and deal 5 cards to each player.
4. Place the remaining cards face down to make a Draw Pile.
5. Turn over the top card of the Draw Pile to make the Discard Pile. If the card drawn is a Wild Card or a Draw 2 Card, continue drawing cards until you find a number card (1-7).
Game Play:
The first player goes first. The player may play a card that matches the number, color or character of the card in the Discard Pile, or a special card (see below). If the player has a card that matches color, number or character, the player will put it in the Discard Pile.
Example: If the card in the Discard Pile is a Blue Zoe #2 Card, the player may play any Blue Card or any Zoe #2 Card.
If the player does not have a match or a Wild Card, the player must draw one card from the Draw Pile. If the card the player draws matches the color, number or character of the card in the Discard Pile, the player may put it play it. Otherwise, the player's turn ends.
Wild cards:
Instead of playing a matching card, the player may change the color of play by playing a Wild Card. The player will play the Wild Card and call out the color the player wants to play (the player may even call the current color if they like).
Example: If the card in the Discard Pile is a Blue Zoe #2 Card, the player may play a Wild Card and change the color to Yellow.
+1 cards:
The player may play a red or blue "+1" card on top of a red or blue 1 card in the Discard Pile. When the player plays a "+1" card, the other player must draw 1 card from the Draw Pile and forfeit their turn. The next player (i.e., the first player) must play the matching color, another "+1" card or a "Wild" card.
+2 cards:
The player may play a green or yellow "+2" card on top of a red or blue 2 card in the Discard Pile. When the player plays a "+2" card, the other player must draw 2 cards from the Draw Pile and forfeit their turn. The next player (i.e., the first player) must play the matching color, another "+2" card or a "Wild" card.
"UNO!":
When the player has two cards left in her/his hand, (s)he must click or enter "UNO" (meaning "one") on a button or textfield before her/his second-to-last card is selected for the Discard Pile. If (s)he does not enter "UNO", (s)he must get two cards from the Draw Pile.
If no one is out of cards by the time the Draw pile is depleted, reshuffle the Discard pile, turn it over and continue play.