【问题标题】:Adding Value to each object from a list为列表中的每个对象添加值
【发布时间】:2020-07-05 11:18:23
【问题描述】:

我正在制作一个小游戏,其中你有一副牌,两名玩家随机获得一半的牌。每次他们出牌时,系统都会比较这些手牌的强度。最后,获胜次数多的玩家(每人得 1 分)获胜。简单的。 例如: 2♣ 应该有值 1 3♣ 应该有值 2

所以玩家可以看到: 玩家一:2♣ 玩家二:3♣ 玩家二获胜

我不确定如何在 deck_of_cards 中为每个字符串添加这些值(如 3♣ 值 2)

import random
deck_of_cards = ["2♣", "3♣", "4♣", "5♣", "6♣", "7♣", "8♣", "9♣", "10♣", "J♣", "Q♣", "K♣", "A♣"]
deck_of_cards = list(deck_of_cards)
hand_size = len((deck_of_cards))//2
player_one = random.sample(deck_of_cards, hand_size)
player_two = set(deck_of_cards) - set(player_one)
player_two = list(player_two)
print(player_one[2])
print(player_two[2])
if player_one > player_two:
   print("Player One Won")
else:
   print("Player Two Won")

提前感谢您的帮助。

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    您可以简单地使用deck_of_cards 列表中每个卡 项的index(加一):

    value = deck_of_cards.index("2♣") + 1
    

    【讨论】:

      【解决方案2】:

      因此,如果我正确理解了您的问题,那么您只需要来自 1 to 13 的 deck_value 列表,这对于迭代 player_one 和 player_two 列表并添加每张卡片的值很有用

      import random
      deck_of_cards = ["2♣", "3♣", "4♣", "5♣", "6♣", "7♣", "8♣", "9♣", "10♣", "J♣", "Q♣", "K♣", "A♣"]
      deck_values = [i for i in range(1,14)]
      hand_size = len((deck_of_cards))//2
      player_one = random.sample(deck_of_cards, hand_size)
      player_two = list(set(deck_of_cards) - set(player_one))
      m1,m2=0,0
      for i in player_one:
          m1+=deck_values[deck_of_cards.index(i)]
      for j in player_two:
          m2+=deck_values[deck_of_cards.index(j)]
      if m1>m2:
         print("Player One Won")
      else:
         print("Player Two Won")
      

      【讨论】:

        猜你喜欢
        • 2013-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-02
        • 2016-12-08
        • 2019-04-03
        • 1970-01-01
        • 2020-04-19
        相关资源
        最近更新 更多