【问题标题】:Deck class in Blackjack in PythonPython中二十一点的甲板类
【发布时间】:2020-08-12 16:50:40
【问题描述】:

我目前正在为基于文本的二十一点游戏开发 Deck(用于扑克牌)类,即使我的嵌套字典有效(我已经测试过)。

代码如下:

import random

cards  = {'Hearts': {'Two':2, 'Three':3, 'Four':4, 'Five':5, 'Six':6, 'Seven':7, 'Eight':8, 'Nine':9, 'Ten':10, 'Jack':10,
         'Queen':10, 'King':10, 'Ace':11}, 
          'Diamonds': {'Two':2, 'Three':3, 'Four':4, 'Five':5, 'Six':6, 'Seven':7, 'Eight':8, 'Nine':9, 'Ten':10, 'Jack':10,
         'Queen':10, 'King':10, 'Ace':11},
          'Spades': {'Two':2, 'Three':3, 'Four':4, 'Five':5, 'Six':6, 'Seven':7, 'Eight':8, 'Nine':9, 'Ten':10, 'Jack':10,
         'Queen':10, 'King':10, 'Ace':11},
          'Clubs': {'Two':2, 'Three':3, 'Four':4, 'Five':5, 'Six':6, 'Seven':7, 'Eight':8, 'Nine':9, 'Ten':10, 'Jack':10,
         'Queen':10, 'King':10, 'Ace':11}}

playing = True

class Deck:

    def __init__(self):
        self.deck = []
        for outer_key in cards:
            'Outer Key = ',outer_key
            for inner_key in cards[outer_key]:
                self.deck.append(('{} of {}'.format(inner_key,outer_key))

    def __str__(self):
        x = ''
        for card in self.deck:
            x += '\n' + card.__init__()
        return 'The deck has: ' + x 

test_deck = Deck()
print(test_deck)

【问题讨论】:

    标签: python oop blackjack


    【解决方案1】:

    您的代码有几个问题 - 括号不匹配,您无需调用 card.__init__()

    我修好了,这对我有用:

    import random
    
    cards = {'Hearts':
             {'Two':2, 'Three':3, 'Four':4, 'Five':5, 'Six':6, 'Seven':7, 'Eight':8, 'Nine':9, 'Ten':10, 'Jack':10, 'Queen':10, 'King':10, 'Ace':11}, 
             'Diamonds':
             {'Two':2, 'Three':3, 'Four':4, 'Five':5, 'Six':6, 'Seven':7, 'Eight':8, 'Nine':9, 'Ten':10, 'Jack':10, 'Queen':10, 'King':10, 'Ace':11},
             'Spades':
             {'Two':2, 'Three':3, 'Four':4, 'Five':5, 'Six':6, 'Seven':7, 'Eight':8, 'Nine':9, 'Ten':10, 'Jack':10, 'Queen':10, 'King':10, 'Ace':11},
             'Clubs':
             {'Two':2, 'Three':3, 'Four':4, 'Five':5, 'Six':6, 'Seven':7, 'Eight':8, 'Nine':9, 'Ten':10, 'Jack':10, 'Queen':10, 'King':10, 'Ace':11}}
    
    playing = True
    
    class Deck:
        def __init__(self):
            self.deck = []
            for outer_key in cards:
                'Outer Key = ',outer_key
                for inner_key in cards[outer_key]:
                    self.deck.append(('{} of {}'.format(inner_key,outer_key)))
    
        def __str__(self):
            x = ''
            for card in self.deck:
                x += '\n' + card
            return 'The deck has: ' + x 
    
    test_deck = Deck()
    print(test_deck)
    

    【讨论】:

      【解决方案2】:

      card.__init__()NoneType,您不能将 str 与它连接。

      __init__() 在您实例化类时为您调用,除非您使用继承来扩展子类的__init__(),否则无需调用它。

      【讨论】:

        猜你喜欢
        • 2012-06-29
        • 2012-10-17
        • 1970-01-01
        • 2016-12-29
        • 1970-01-01
        • 1970-01-01
        • 2017-03-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多