Computer Science 325.001

Software and s/w Development

Oct 30, 2013 (5 years and 7 months ago)

348 views

Computer Science 325.001

Software Engineering

Spring 201
3

Homework

Assignment
2

(25 points)

Due Date: T
ue
sday,
Febr
uary
1
2
, 201
3

-
box by
4:30 P
M

Recall the rules of the

Hearts

card game:

This game
is

played by
four

players
, using

a standard 52
-
card. The dealer deals all of the cards to the players
, so each player
starts with 13 cards
.

Passing

After looking at his or her hand, each player chooses three cards and passes them face down to another player. All players mu
st
pass their
own cards before looking at the cards received from an opponent.

The passing rotation is: (1st hand) to the player on
your left, (2nd hand) to the player on your right, (3rd hand) to the player across the table, (4th hand) no passing. The rota
tion then
rep
eats until the game ends.

Tricks

The player holding the 2 of
C
lubs after the
first
pass plays that card to start the first trick.

Each player must follow suit if possibl e. If
a player has no cards in the suit led, a card of any other suit may be discarded. Exception: If a player has no clubs when th
e first
trick is led, a heart or the

(the “Black Maria”)
cannot be pla
yed.

The highest card of the suit led wins a trick. The winner of the trick keeps all cards won in a single stack in front of hims
elf or herself,
face down. The winner of a trick starts the next trick.

Hearts may not be led until a heart or the
Black Maria

has been played (this is called "breaking" hearts). The
Black Maria

can be
led at any time.

Scoring

Use a score sheet with a column for each player. At the end of each hand, count the number of hearts each player has taken, a
s well
as the Black Maria.
Hearts are 1 point each; the Black Maria is 13 points.

If one player has won all 13 hearts and the Black Maria (this is known as

“shooting the moon”
), that player can choose to subtract
26 points from his or her score, or to add 26 points to every other pl
ayer's score.

When one player reaches or passes
100 points
, the game ends. The player with the lowest score wins.

Let’s examine an example hand…

Original Deal:

It’s the first pass, so everyone
passes three cards to the person on their left. For this example, everyone just passes their last three
cards.

The Pass:

Blue has the 2 of
C
lubs, so Blue starts the first tri ck with that card
.
Orange plays the King of Clubs, Green plays the Ace of Clubs,
and Gray plays the Queen of Clubs, so Green wins the trick.

Green won the first trick, so Green starts the second trick with the King of Di amonds. Gray plays the 8 of Diamonds, Blue pla
ys the
Ace of Diamonds, and Orange plays the
Jack of Diamonds, so Blue wins the trick.

Blue won the second trick, so Blue starts the third trick with the Queen of Diamonds. Orange plays the 9 of Diamonds, Green p
lays
the 10 of Diamonds, and Gray plays the 7 of Diamonds, so Blue again wins the trick.

Blue won the third trick, so Blue starts the fourth trick with the Jack of Spades. Orange plays the 8 of Spades, Green plays
the 10 of
Spades, and Gray plays the 4 of Spades, so Blue again wins the trick.

Blue won the fourth trick, so Blue starts the fifth trick with the 2 of Spades. Orange plays the 3 of Spades, Green plays the

9 of
Spades, and Gray plays the Ace of Hearts (since Gray has no Spades)

thus “breaking Hearts”
, so Green wins the trick.

Green won the fifth trick, so Green starts the sixth trick with the 5 of Clubs. Gray plays the Jack of Clubs, Blue plays the
8 of Cl ubs,
and Orange plays the 9 of Clubs, so Gray wins the trick.

Gray won the sixth trick, so Gray starts the seventh trick with the 10 of Clubs. Blue plays the 7 of Clubs, Orange plays the
4 of
Clubs, and Green plays the Queen of Spades, the Black Maria (since Green has no Clubs), so Gray
again
wins the trick.

Gray won the seventh tri ck, so Gray starts the eighth trick with the 3 of Diamonds. Blue plays the 6 of Diamonds, Orange play
s the
5 of Diamonds, and Green plays the 2 of Diamonds, so Blue wins the trick.

Blue won the eighth trick, so Blue starts the ninth trick with the 5 of Spades. Orange pl ays the Ace of Spades, Green plays t
he 7 of
Spades, and Gray plays the Jack of Hearts (since Gray has no Spades), so Orange wins the trick.

Orange won the ninth trick, so Orange starts the tenth trick with the 6 of Hearts (since Hearts has al ready been broken). Gre
en
plays the 3 of Hearts, Gray plays the 5 of Hearts, and Blue plays the 2 of Hearts, so Orange
again
wins the trick.

Orange won the tenth trick, so Orange starts the eleventh trick with the 7 of Hearts. Green plays the 9 of Hearts, Gray plays

the 4
of Hearts, and Blue plays the 8 of Hearts, so Green wins the trick.

Green won the eleventh trick, so
Green starts the twelfth trick with the 6 of Spades. Gray plays the 6 of Clubs (since Gray has no
Spades), Blue plays the Queen of Hearts (since Blue has no Spades), and Orange pl ays the King of Spades, so Orange wins the
trick.

Orange won the
twelfth tri ck, so Orange starts the last trick of the hand wi th the 10 of Hearts. Green plays the King of Hearts,
Gray plays the 3 of Clubs, and Blue plays the 4 of Diamonds, so
G
reen wins the trick.

Examining each player’s won tricks at the end of the han
d reveals a score of 13 for Gray (due to the Black Maria), 0 for Blue, 6 for
Orange, and 7 for Green. On the next hand, the pass will go to the right instead of the left.

Develop a
complete

UML class diagram for the cards and their interactions if this game is implemented as a program. Include the
obvious
classes (a single playing card,
a deck of cards, a player, a dealer), and make sure that the necessary game items (a
player

s hand
, a
pass, a trick
) are available as either classes or attributes, whichever fits best. Include all appropri ate attributes,
operations (with parameters, i f applicable), visibilities, mul tiplicities, associations, aggregations, compositions, and gene
ralizati ons,

as well as any UML notes that would help to clarify your model.

Remember that you

re not implementing a program, just a model of the gameplay design. Al gorithmic details will not be included in
your model, but all obvious features (data and functionality)

must be included. For instance, a card must have a rank (Ace, 2, 3,

,
Jack, Queen, King) and a suit (

,

,

,

), and functionality will be needed to determine whether two cards have the same
suit
,
whether a hand of cards contains a
card

of
a particular
suit
, etc.

Use either
Microsoft Visio

or
IBM Rational Rose

to implement your diagram, and make sure to include a header containing your

While you may
discuss

this assignment with others, you are expected to develop your
own

model, to
not
show

your model to other class members, and to
not view