Python类:2人纸牌游戏,多数高手获胜

2024-04-25 07:51:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个纸牌游戏,游戏中的职业应该由拥有最多王牌的玩家赢得。该功能是创建一个完整的牌组,每个5张牌发给2名玩家,然后显示拥有最多a的玩家。我正在为最后一部分而挣扎

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

提前谢谢! \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


Tags: ofinselfadddefdisplaycardsprint