【问题标题】:Card game - compare cards and play five rounds between two players纸牌游戏 - 比较纸牌并在两名玩家之间玩五轮
【发布时间】:2021-08-18 02:12:25
【问题描述】:

我正在尝试使用西班牙花色纸牌在两个玩家(人类和计算机)之间创建一个 5 轮纸牌游戏。虽然我现在可以将牌发给两个玩家并比较他们中的大多数,但我有两个主要问题:

  • 我无法比较不是数字的暗淡(“Jack”、“Knight”、“King”、“Ace”)。我的老师建议我创建一个这样的字典: dims = {2:“二”,3:“三”,4:“四”,5:“五”,6:“六”,7:“七”, 8:“杰克”,9:“骑士”,10:“国王”,11:“王牌”}。但我不知道如何使用这些数字进行比较,然后用文字打印(只是打印)这些值。有什么想法吗?
  • 另一件事是我不知道在哪里编写循环来播放五个回合。练习还要求按键进行下一轮,在这种情况下我可以使用什么功能?

这是我的代码:


dims = [2, 3, 4, 5, 6, 7, "Jack", "Knight", "King", "Ace"]
suits = ["golds", "cups", "swords", "clubs"]
deck = []

for d in dims:
    for s in suits:
        card = "{} of {}".format(d,s)
        deck.append(card)
        
random.shuffle(deck)

Human = [[]]
Computer = [[]]

for i in range(1):
    for j in range(1):
        Human[j].append(deck.pop(0))
        
for i in range(1):
    print("Human")
    for j in range (1):
        print("{:16}".format(Human[i][j]), end=" ")
    print()

for i in range(1):
    for j in range(1):
        Computer[j].append(deck.pop(0))
        
for i in range(1):
    print("Computer")
    for j in range (1):
        print("{:16}".format(Computer[i][j]), end=" ")
    print()
    
if Human>Computer:
    print("Human wins")
elif Computer>Human:
    print("Computer wins")
else:
    print("Draw")







【问题讨论】:

  • 我建议只使用数字,然后使用函数来获取卡片的字符串表示形式,无论您实际需要打印它。那么你就不需要在字典上浪费内存

标签: python-3.x playing-cards


【解决方案1】:

对于第一个问题,您可能需要查看Python Dictionaries。您可以将数字存储为键,将卡片值存储为值。

关于你的第二个问题,我读过你的代码一次,我不明白为什么range(1) 有很多 for 循环。如果您只想运行这些方法一次,则不需要循环。 运行游戏五次的提示:游戏从哪条线开始?游戏在哪一行结束?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多