#python #card
Вопрос:
Я пытаюсь создать карточную игру с классами, которые должны быть выиграны игроком, у которого больше всего тузов. Функция состоит в том, чтобы создать полную колоду карт, раздать по 5 карт каждому 2 игрокам, а затем отобразить игрока, у которого больше всего тузов. Я борюсь с последней порцией.
class Card:
def __init__(self, rank, suit):
self.suit = suit
self.rank = rank
def get_rank(self):
#self.get_rank = ['Ace', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'Jack', 'Queen', 'King']
if self.rank == 1:
trueRank = "Ace"
elif self.rank == 11:
trueRank = "Jack"
elif self.rank == 12:
trueRank = "Queen"
elif self.rank == 13:
trueRank = "King"
else:
trueRank = str(self.rank)
return "{rank} of {suit}".format(rank = trueRank, suit = self.suit)
def display(self):
print ("{} of {}".format(self.suit, self.rank))
class Deck:
def __init__(self):
self.cards = []
self.make()
def make(self):
for s in ["Spades", "Clubs", "Diamonds", "hearts"]:
for v in ['Ace','Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten','Jack','Queen','King']:
self.cards.append(Card(s,v))
def display(self):
for c in self.cards:
c.display()
def shuffle(self):
for i in range(len(self.cards) - 1, 0, -1):
r = random.randint(0,i)
self.cards[i], self.cards[r] = self.cards[r], self.cards[i]
def deal(self):
return self.cards.pop()
class Player:
def __init__(self, name):
self.name = name
self.hand = []
self.ace = 0
def add(self, deck):
self.hand.append(deck.deal())
return self
def ace_cards(self):
cards = 0
for card in self.ace:
card = str(self.hand)
if card == 'Ace':
cards = 1
return cards
def display(self):
for card in self.hand:
card.display()
def main():
pass
# create one deck and shuffle it
deck = Deck()
deck.shuffle()
# deck.display()
#create both players
player1 = Player('player 1')
player2 = Player('player 2')
#populate the players hands with 5 cards each
player1.add(deck)
player2.add(deck)
player1.add(deck)
player2.add(deck)
player1.add(deck)
player2.add(deck)
player1.add(deck)
player2.add(deck)
player1.add(deck)
player2.add(deck)
player1.add(deck)
player2.add(deck)
#display the players
print('This is the hand of player 1:')
player1.display()
print('')
print('This is the hand of player 2:')
player2.display()
print('')
#display the number of ace cards in each players hands
print(str(player1.ace_cards()))
print('Number of ace cards in each player''s hand:')
print('Player 1 has aces')
print('Player 2 has aces')
print('')
#display the winner
Заранее спасибо!
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Комментарии:
1. добавьте значение суммы на карты.
cards = {'Nine':9, 'Queen':10, 'Ace':11}
2. Куда это должно привести? В классе карт в разделе get_rank?