Python Forum
Organizing list of objects by attribute
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Organizing list of objects by attribute
#1
Hey guys/gals,

I have been working on my first python project of modelling a deck of standard playing cards. I am hoping to program a basic card game and then begin making a GUI for it.

I am stuck on getting the players hand organized. The card class has two attributes: value, suit. I would like to organize by 'value' so that I can come back check for pairs, 3 of a kind, etc...

Also, I just started reviewing PEP-8 recently. So I will be reorganizing things after its all functional as a learning exercise.

What do you guys/gals recommend

from Card import Card

class Deck:
    def __init__(self):
        self.deck_of_cards=[]
                         
    def initialize_deck(self):
        suits = ["Hearts", "Clubs", "Spades", "Diamonds"]
        values = ["Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"]
                    
        for suit in suits:
            for value in values:
                temp_card = Card()          #create a temporary card for each iteration
                                 
                temp_card.setvalue(value)   #set value and suit of temporary card prior to storage
                temp_card.setsuit(suit)
                
                self.deck_of_cards.append(temp_card)    #store card in the Deck object 
            
    def shuffle_deck(self):
        import random     #Import "random" module to gain access to "random.shuffle()"
        random.shuffle(self.deck_of_cards)
        
    def draw_card(self):
        temp_card = self.deck_of_cards.pop()
        return(temp_card)
    
    def load_card(self, temp_card):
        self.deck_of_cards.append(temp_card)
class Card:

    def __init__(self):
        self.value = "UNASSIGNED VALUE"
        self.suit = "UNASSIGNED SUIT"
    
    #def __init__(self, newvalue, newsuit):
        #self.value = newvalue
        #self.suit = newsuit
        
    def getvalue(self):
        return(self.value)
    
    def getsuit(self):
        return(self.suit)
    
    def setvalue(self, new_value):
        self.value=new_value
        
    def setsuit(self, new_suit):
        self.suit=new_suit
        
    def identify_card(self):
        print(self.getvalue(), "of", self.getsuit())
from Deck import Deck
from Card import Card

class Hand:
   
    def __init__(self):
        self.cards_in_hand = []
        
    def look_hand(self):
        for card in self.cards_in_hand:
            card.identify_card()
    
    def draw_card(self, deck):
        self.cards_in_hand.append(deck.draw_card())
        
    #def give_card(self):
        #FUNCTION WILL REMOVE A SPECIFIC CARD FROM HAND.CARDS_IN_HAND[].
        #FUNCTION WILL RECIEVE A NUMBER WHICH CORRELATES TO THE INDEX LOCATION OF THE
        #CARD TO BE RETURNED BY THE FUNCTION
        
    #def sort_hand(self):
        #FUNCTION WILL ORDER THE HAND BY VALUE OF THE CARDS.
    
    #def check_hand(self):
        #FUNCTION WILL RETURN AN INTEGER WHICH CORRESPONDS TO HIGHEST CHANCE TO WIN
        #AND AN INTEGER WHICH CORRESPONDS TO THE HIGH CARD OF THE HAND,
        # HIGH CARD   = 0
        # PAIR        = 1
        # TWO PAIR    = 2
        # 3 OF A KIND = 3
        # STRAIGHT    = 4
        # FLUSH       = 5
        # FULL HOUSE  = 6
        # 4 OF A KIND = 7
        # STR8T FLUSH = 8
        # ROYAL FLUSH = 9
        # 4 OF A KIND = 3
        # HIGH CARD: 2 = [0], 3 = [1] ... ACE = [13] 
Reply


Messages In This Thread
Organizing list of objects by attribute - by scarney1988 - Mar-06-2020, 02:53 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Organizing several similar classes with overlapping variables 6hearts 7 1,689 May-07-2023, 02:00 PM
Last Post: 6hearts
  Creating list of lists, with objects from lists sgrinderud 7 1,887 Oct-01-2022, 07:15 PM
Last Post: Skaperen
Question Keyword to build list from list of objects? pfdjhfuys 3 1,765 Aug-06-2022, 11:39 PM
Last Post: Pedroski55
  AttributeError: 'list' object has no attribute 'upper' Anldra12 4 5,300 Apr-27-2022, 09:27 AM
Last Post: Anldra12
  How to store the resulting Doc objects into a list named A xinyulon 1 2,012 Mar-08-2022, 11:49 PM
Last Post: bowlofred
  AttributeError: 'list' object has no attribute 'values' ilknurg 4 15,555 Jan-19-2022, 08:33 AM
Last Post: menator01
  Grouping and sum of a list of objects Otbredbaron 1 3,443 Oct-23-2021, 01:42 PM
Last Post: Gribouillis
  Passing List of Objects in Command Line Python usman 7 3,431 Sep-27-2020, 03:45 PM
Last Post: ndc85430
  How to create and define in one line a 2D list of class objects in Python T2ioTD 1 2,194 Aug-14-2020, 12:37 PM
Last Post: Yoriz
  How do I get attribute XPATHs list ? MDRI 3 3,106 Jun-24-2020, 07:28 AM
Last Post: snippsat

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020