Login and get codingIn this bite you will implement a
BridgeHand
class representing a collection of 13 playing cards randomly chosen from a 52-card French deck.Each card features a suit (spades, hearts, diamonds or clubs) and a rank
(Ace, King, Queen, Jack and then 10 to 2). Both suits and ranks are ordered as
indicated. Data structures for
Suit
,Rank
, andCard
have been provided to you.Methods
The
__init__
constructor for your class should expect a sequence ofCard
objects. Attempts to use non-sequential types should raise aTypeError
exception, and sequences containing values of types other thanCard
- or holding fewer or more than 13 elements - should raiseValueError
.Your class will also need to implement a
__str__
method returning a textual representation of the hand, sorted by suit and rank, eg: S:AK32 H:QJT4 D:9654 C:3. Note that the 10 rank should be represented as a capital T.Ensure that spades, hearts, diamonds and clubs follow each other in that order, skipping over voids (eg, no cards in that suit).
Properties
Additionally, your class must implement the following read-only properties:
-
hcp
: high card points. Count 4 points for each Ace, 3 for each King, 2 for each Queen and 1 for each Jack.-
doubletons
: number of suits containing only two cards.-
singletons
: number of suits containing just one card.-
voids
: number of suits containing zero cards (that is, no cards in that suit).-
ssp
: short suit points. Count 1 point for each doubleton, 2 for each singleton, and 3 for each void.-
total_points
: sum of HCP and SSP.-
ltc
: losing trick count. Considering only the top three cards in each suit, LTC is determined by examining each suit and assuming that an Ace will never be a loser, nor will a King in a 2+ card suit, nor a Queen in a 3+ card suit; accordingly:- a void = 0 losing tricks.
- a singleton other than an A = 1 losing trick.
- a doubleton AK = 0; Ax or Kx = 1; Qx or xx = 2 losing tricks.
- a three card suit AKQ = 0; AKx, AQx or KQx = 1 losing trick.
- a three card suit Axx, Kxx or Qxx = 2; xxx = 3 losing tricks.
Examples
S:AK8 H:JT94 D:A2 C:KQ74 hcp=17, doubletons=1, singletons=0, voids=0, ssp=1, total points=18, ltc=6 S:9 H:KJT94 D:432 C:AJ742 hcp=9, doubletons=0, singletons=1, voids=0, ssp=2, total points=11, ltc=8 H:AKQJT94 D:4 C:KQJ72 hcp=16, doubletons=0, singletons=1, voids=1, ssp=5, total points=21, ltc=2 ---
Hope you will enjoy this bite, and perhaps be inspired to learn more about Bridge, easily the finest card game ever created!
61 out of 63 users completed this Bite.
Will you be the 62nd person to crack this Bite?
Resolution time: ~120 min. (avg. submissions of 5-240 min.)
Our community rates this Bite 6.6 on a 1-10 difficulty scale.
» Up for a challenge? 💪