2 回答
TA贡献1840条经验 获得超5个赞
您的第一个问题是player_choice
在本地定义的。它将在每次函数调用中被覆盖。此外,在玩家选择大于 manabank 的情况下,您必须评估/返回 pick_card() 的返回值。否则递归的第一个调用函数将None
由于缺少返回值而返回。
TA贡献1779条经验 获得超6个赞
在您的 for 循环中,您有两个条件 -if i <= mana_bank:并且if not i <= mana_bank:对于任何给定的条件i之一都是如此。
因此,您的循环会在遇到大于mana_bank且不会检查所有卡片的卡片时立即停止。
你想要做的是:
for i in player_hand:
if i <= mana_bank:
print(player_hand, mana_bank, "Mana available type the name of the card you wish to play ... ")
player_choice_str = input()
break
if player_choice_str is 0: # no card selected at the end of the loop
return "You don't have enough mana to play a card."
此外,您可能希望在此行之后验证用户输入,player_choice_str = input()以检查他们输入了有效的卡。
添加回答
举报