The objective is to distribute a deck of cards among two players. The code for the Shuffle Deck of Cards in Python can be used to shuffle the cards. The shuffle method, which is a built-in feature of the random library, is used to mix and randomize the order of the data before printing it.
Prerequisites: Python Classes and Objects
Steps to Shuffle Deck of Cards
- To shuffle the deck of cards we need to use the shuffle module.
- Import the required module
- Declare a class named Cards which will have variables suites and values, now instead of using self.suites and self.values, we are going to declare them as global variables.
- Declare a class Deck that will have an empty list named mycardset, and the suites and values will be appended to mycardset list.
- Declare a class ShuffleCards along with a method named shuffle() that would check the number of cards and then shuffles them.
- To remove some cards we will create a popCard() method in ShuffleCards class.
Complete Code
Shuffle a deck of cards using a Python random module.
Python3
# Import required modules from random import shuffle # Define a class to create # all type of cards class Cards: global suites, values suites = [ 'Hearts' , 'Diamonds' , 'Clubs' , 'Spades' ] values = [ 'A' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , '10' , 'J' , 'Q' , 'K' ] def __init__( self ): pass # Define a class to categorize each card class Deck(Cards): def __init__( self ): Cards.__init__( self ) self .mycardset = [] for n in suites: for c in values: self .mycardset.append((c) + " " + "of" + " " + n) # Method to remove a card from the deck def popCard( self ): if len ( self .mycardset) = = 0 : return "NO CARDS CAN BE POPPED FURTHER" else : cardpopped = self .mycardset.pop() print ( "Card removed is" , cardpopped) # Define a class gto shuffle the deck of cards class ShuffleCards(Deck): # Constructor def __init__( self ): Deck.__init__( self ) # Method to shuffle cards def shuffle( self ): if len ( self .mycardset) < 52 : print ( "cannot shuffle the cards" ) else : shuffle( self .mycardset) return self .mycardset # Method to remove a card from the deck def popCard( self ): if len ( self .mycardset) = = 0 : return "NO CARDS CAN BE POPPED FURTHER" else : cardpopped = self .mycardset.pop() return (cardpopped) # Driver Code # Creating objects objCards = Cards() objDeck = Deck() # Player 1 player1Cards = objDeck.mycardset print ( '\n Player 1 Cards: \n' , player1Cards) # Creating object objShuffleCards = ShuffleCards() # Player 2 player2Cards = objShuffleCards.shuffle() print ( '\n Player 2 Cards: \n' , player2Cards) # Remove some cards print ( '\n Removing a card from the deck:' , objShuffleCards.popCard()) print ( '\n Removing another card from the deck:' , objShuffleCards.popCard()) |
Output: