【发布时间】: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")
【问题讨论】:
-
我建议只使用数字,然后使用函数来获取卡片的字符串表示形式,无论您实际需要打印它。那么你就不需要在字典上浪费内存