How to write a function for highest denomination of any card in the hand.The denominations from lowest to highest are 2, 3,4,5,6,7,8,9,10,'jack,''queen','king','ace'.For example,
highestDenomination({(6,'club'),(6,'heart'),('queen','heart'),('queen','diamond'),(2,'heart')})denotes‘queen’.

Recommended Answers

All 2 Replies

Do dictionary mapping the denominations to their numeric value.

Here is another approach ...

'''card_deck_5.py
create a deck of cards, shuffle and draw a hand of five cards
suit: club=C, diamond=D, heart=H spade=S
rank: ace=A, 10=T, jack=J, queen=Q, king=K, numbers=2..9
ace of spade would be AS, 8 of heart would be 8H and so on ...
'''

import random

def create_deck():
    """
    create a full deck of cards as a list of codes
    """
    ranks = "A23456789TJQK"
    suits = "CDHS"
    deck = [rank + suit for rank in ranks for suit in suits]
    return deck

def shuffle_deck(deck):
    random.shuffle(deck)
    return deck

deck = create_deck()
shuff = shuffle_deck(deck)
# pull five cards and show
card5 = shuff[:5] 
print(card5)
print('-'*30)
# sorted by rank
print(sorted(card5))
# sorted by suit
print(sorted(card5, key=lambda x: x[1]))

'''possible result ...
['4S', '2D', '2H', 'QS', '4D']
------------------------------
['2D', '2H', '4D', '4S', 'QS']
['2D', '4D', '2H', '4S', 'QS']
'''
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.