【发布时间】:2021-06-07 16:32:20
【问题描述】:
我正在开发一个可用于玩二十一点 (Python) 的 Discord 机器人。下面的代码应该是计算各手牌的数值:
class Player(object):
def __init__(self, id=''):
self.id = id
self.hand = None
self.status_text = ''
self.bet = 0
self.value = 0
self.score = 0
self.wins = 0
self.no_response = 0
self.request_leave = False
self.playing = False
def calculate_value(self):
"""Calculates value of player's hand"""
if not self.hand:
return 0
num_aces = 0
total_value = 0
for card in self.hand:
if pydealer.const.DEFAULT_RANKS['values'][card.value] == 13:
num_aces += 1
total_value += 11
elif pydealer.const.DEFAULT_RANKS['values'][card.value] >= 10:
total_value += 10
else:
total_value += int(card.value)
while num_aces > 0 and total_value > 21:
total_value -= 10
num_aces -= 1
return total_value
不幸的是我得到了
for card in self.hand:
if pydealer.const.DEFAULT_RANKS['values'][card.value] == 13:
num_aces += 1
total_value += 11
显示错误 Non-iterable value self.hand is used in an itating context。 我希望有人能帮帮忙!问候,非常感谢。
【问题讨论】:
-
您正在尝试遍历初始化为 None 的 self.hand。你不能遍历 None 数据类型。
-
究竟抛出了什么错误?这听起来像是 pylint 错误,而不是运行时错误
标签: python discord discord.py bots blackjack