1,105,578 Community Members

card game

dtripath
Newbie Poster
1 post since Oct 2012
Reputation Points: 0 [?]
Q&As Helped to Solve: 0 [?]
Skill Endorsements: 0 [?]
Unverified Member
 
0
 

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’.

Member Avatar
pyTony
pyMod
6,104 posts since Apr 2010
Reputation Points: 818 [?]
Q&As Helped to Solve: 1,056 [?]
Skill Endorsements: 42 [?]
Moderator
Featured
 
0
 

Do dictionary mapping the denominations to their numeric value.

Member Avatar
vegaseat
DaniWeb's Hypocrite
6,984 posts since Oct 2004
Reputation Points: 1,544 [?]
Q&As Helped to Solve: 1,872 [?]
Skill Endorsements: 67 [?]
Moderator
 
1
 

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']
'''
Question Answered as of 1 Year Ago by vegaseat and pyTony
You
This question has already been solved: Start a new discussion instead
Post:
Start New Discussion
Tags Related to this Article