CIS 554 Scala 1: Twenty-One Card Game
Fall 2013, David Matuszek

# Purpose of this assignment

To get you started programming in Scala.

# General idea

This is a simplified version of a common card game, "21". Blackjack is a better-known variant.

In this version of the game, there are three players and a dealer. The dealer deals two "cards" to each player, one hidden, so that only the player knows what it is, and one face up, so that everyone can see it.

The players then take turns requesting cards, trying to get as close to 21 as possible, but not going over 21. A player may pass (ask for no more cards). Once a player has passed, he or she cannot later ask for another card. When all three players have passed, the round ends.

The winner of the round is the player who has come closest to 21 without exceeding it. In the case of a tie, or if everyone goes over 21, no one wins.

# Details

Create a project named `TwentyOne`, and within that a package named `game`. Create an object named `Game` containing a `main` method, an object `Dealer`, and a class `Player`.

• There is one dealer, who does not play.
• There are exactly three players.
• Play as many rounds as the user desires.
• "Cards" are the numbers 1 through 10.
• Cards 1 through 9 are equally likely, but 10 is four times more likely than any other card.
• There is nothing special about the "Ace" or about any other card.
• Cards are randomly generated, not drawn from a deck of limited size.

Print out what the program is doing as it goes along. An example output might look like this:

```Manny takes 5 (hidden)
Moe takes 2 (hidden)
Jack takes 9 (hidden)
Manny takes 3
Moe takes 8
Jack takes 10
Manny takes 3
Moe takes 10
Jack passes.
Manny takes 8
Moe passes.
Manny passes.
Moe wins with 20!
Manny has 19, Moe has 20, Jack has 19.```

## One more detail

As defined, you aren't playing the game, you are just watching it. Add yourself as a player.

# Due date

Please turn in to Canvas your zip file by Friday, November 9 , before 6:00am.