Question: import random ranks = ( ' A ' , ' 2 ' , ' 3 ' , ' 4 ' , ' 5 ' ,
import random
ranks AJQK
suits Hearts 'Diamonds', 'Spades', 'Clubs'
class Card:
def initself suit, rank:
self.suit suit
self.rank rank
def strself:
return fselfrank of selfsuit
class Deck:
def initself:
self.cards Cardsuit rank for suit in suits for rank in ranks
def removekingsself:
self.cards card for card in self.cards if not cardrank K and card.suit in Hearts "Diamonds", "Clubs"
def shuffleself:
random.shuffleselfcards
def drawself:
if self.cards:
return self.cards.pop
else:
return "Deck is empty!"
def dealself numplayers:
playershands fPlayer i: for i in rangenumplayers
playercount lenplayershands
for i in rangelenselfcards:
player fPlayer i playercount
playershandsplayerappendselfcardsi
return playershands
def groupbyrankself hand:
rankgroups
for card in hand:
rank card.rank
if rank in rankgroups:
rankgroupsrankappendcard
else:
rankgroupsrankcard
return rankgroups
def removematchedcardsself playershands:
for player, hand in playershands.items:
rankgroups self.groupbyrankhand
for rank, cards in rankgroups.items:
if lencards:
if lencards:
for card in cards:
hand.removecard
elif lencards:
for i in range:
hand.removecardsi
return playershands
deck Deck
deck.removekings
deck.shuffle
playershands deck.dealnumplayers
for player, hand in playershands.items:
printfplayers hand:
for card in hand:
printcard
print
playershands deck.removematchedcardsplayershands
print
After removing matched cards:
for player, hand in playershands.items:
printfplayers updated hand:
for card in hand:
printcard
print
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
