【发布时间】:2019-03-23 20:47:32
【问题描述】:
我正在用 Python 制作 BlackJack 游戏,但它不尊重我的索引。它会从我的所有子列表中弹出一个随机元素,而不仅仅是从一个列表中。
import random
class Deck(object):
def __init__(self):
self.deck_of_cards = []
self.base = []
for i in range(0, 13):
troca = {
0: 'A',
10: 'J',
11: 'Q',
12: 'K'
}
if not i in (0, 10, 11, 12):
self.base.append(i + 1)
else :
self.base.append(troca.get(i))
for i in range(0, 4):
self.deck_of_cards.append(self.base)
def random_card(self, quantidade):
print(self.deck_of_cards)
for i in range(0, quantidade):
self.deck_of_cards[random.randint(0, 3)].pop(random.randint(0, 13))
print(self.deck_of_cards)
bar = Deck()
bar.random_card(2)
【问题讨论】:
-
欢迎来到 Stack Overflow。不幸的是,您的代码的缩进被破坏了,这使得 Python 无效。请edit你的问题,准确粘贴你的代码,然后选择它并单击
{}或按Ctrl+K缩进它。 Stack Overflow 会将其视为代码块。在您编辑时,请查看您是否可以澄清您的问题。 How to Ask 有一些有效提问的好技巧。 -
注意:如果从列表中弹出一个元素,它将丢失一个元素。此代码
random.randint(0, 13)可能会失败,因为它可能会在该索引不再存在时尝试访问13。