python - Python中二十一点的甲板类
问题描述
我目前正在为基于文本的二十一点游戏开发 Deck(用于扑克牌)类,即使我的嵌套字典有效(我已经测试过),我在使用 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)
解决方案
您的代码有几个问题 - 括号不匹配,您不需要调用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)
推荐阅读
- python - Python Selenium Webdriver 表值到 Excel
- c# - 将 nvarchar 转换为 int 时 C# 转换失败
- laravel - 路由没有检测到ajax url
- javascript - Mongoose 检索对象数组。对于每个对象,我只想要两个属性
- c - 将 char 数组传递给另一个函数时,Realloc 返回无效指针
- java - 在 Spring Boot 中连接到多个“动态”数据库以及本地“静态”数据库
- javascript - javascript - 在 html 标签中包装选择(并打开它)
- ios - 如何让我的 UICollectionViewCell 阴影渗入我的主视图?
- javascript - 使用单个三元运算符渲染多个组件
- windows - Perl 串口访问 [Windows 10]