访问嵌套列表中的值并将其发送给函数

时间:2019-02-20 21:37:20

标签: python function loops

我也在写二十一点游戏,自学python。 为了表示甲板上的52张牌,我在列表中有一个嵌套列表,该列表包含其在甲板上的原始位置(0-51),它是西装,并且其面值为字符串。在我的职责范围内,我发给我的玩家卡片,并将套牌值(0-51)的西装值和面值存储在列表中。我试图将套牌值读入我创建的用于评估玩家手牌得分的函数中,但是却出现错误:TypeError:列表索引必须是整数或切片,而不是列表。因此,我没有正确索引,但这似乎是索引以到达列表内列表的第一个值的正确方法,因此我很困惑。你们能帮帮我吗。

这是我的功能:

#this function evalutes the game value of a card and adds it to the players score
def card_value(card, value):

   if card%13 == 0 and value<=10:                      #Evaluate value of ace based on the value of the rest
      value +=11                                      # of the deck
   elif card%13 == 0 and value>10:
      value+=1
   elif card%13 == 10 or 11 or 12:                     # evaluate face cards
      value += 10
   else:
      value += card%13 +1                             #Evaluate rest of the cards in the deck

这是我的函数调用:

for _ in player1_hand:                              
     player1_score += card_value(player1_hand[_][0],player1_score)

感谢帮助人员。

1 个答案:

答案 0 :(得分:0)

修复了调用玩家手牌的for loop功能。我在为列表列表中的player1-hand索引不正确。我已修复了分度调用,但是该函数为玩家的手返回了不正确的手值。我将修复该函数的逻辑,并在以后进行更新。

for _ in player1_hand:                              #use for loop to evaluate the value using function card_value
#print(_[1])                                    #proper indexing call.
player_card = _[0]
player1_score += card_value(player_card, player1_score)