Я пытаюсь написать сценарий, который берет список игральных карт, превращает их в карточные объекты, а затем перетасовывает и запускает тестовые руки, чтобы вы знали, какова вероятность того, что один из них будет у вас в руке, исходя из их количества в Палуба. (в идеале я хотел бы, чтобы он имитировал 10000 рук одновременно).
ПРОБЛЕМА в том, что я не знаю, как пометить эти объекты карты как одну или несколько вещей. Например, королева сердец - это много вещей: это лицевая карта, карта королевы и костюм червей.
Сейчас я беру список карточек и количество копий каждой карточки в колоде и использую класс, чтобы превратить их в список объектов карточек. В конечном итоге это возвращает список кортежей с названием и категорией карты. Затем я использую серию операторов if для сортировки карт по определенным категориям на основе жестко закодированного списка того, для каких карт нужен какой тег.
Проблема в том, что я не знаю, как дать им более одного тега за раз.
Я также новичок в python, поэтому я понятия не имею, разумный ли это способ сделать это или нет.
List = [("queen of hearts", 4), ("king of hearts", 4), ("joker", 3), ("2 of clubs", 4), ("4 of clubs", 2), ("2 of diamonds", 3)]
Type_hearts = {"queen of hearts", "king of hearts", "2 of hearts", "ace of heats"}
Type_face = {"queen of hearts", "queen of diamonds", "king of diamonds", "joker"}
Type_queen = {"queen of hearts", "queen of diamonds"}
Type_joker = {"joker"}
class Card(object):
def __init__(self, name):
self.name = name
#the following if-statement codes card objects into types
##in order for an object to fit into these categories, the full and complete name must match exactly
###also, right now it looks like these can currently only be one thing at a time :(
if name in Type_hearts:
Type = "heart"
if name in Type_face:
Type = "face card"
if name in Type_queen:
Type = "is queen"
else:
Type = None
self.card_type = Type
def __repr__(self):
return f"<{self.name}, {self.card_type}>"
#now we need to tell the computer how to REPRESENT this class as a string
#when you implement one of these, just implement both of these to have a textual representation of your class.
def __str__(self):
return f"<{self.name}, {self.card_type}>"
class DeckList(object):
def __init__(self, decklist):
self.decklist = decklist
#self.name = name
#self.count = count
self.deck = []
#decklist
for name, count in decklist:
for i in range(count):
self.deck.append(Card(name))
Я бы хотел найти способ, чтобы программа могла инициализировать объект для карты, скажем, короля червей, и знать, что это король, лицевая карта и в костюме. сердец. Пока я просто не знаю, как это сделать, и я не могу пометить вещи более чем одной вещью одновременно.