【发布时间】:2012-07-27 17:07:27
【问题描述】:
我对 python 非常陌生,并且一直在尝试在 python 上制作多人二十一点游戏。我遇到了很多很多问题,想知道你们是否可以帮助我解决这些问题。
import random
def total(hand):
aces = hand.count(11)
t = sum(hand)
if t > 21 and aces > 0:
while aces > 0 and t > 21:
t -= 10
aces -= 1
return t
Cards = ["2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "10C", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "10S", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "10D", "AH", "JH", "QH", "KH", "AC", "JC", "QC", "KC", "AS", "JS", "QS", "KS", "AD", "JD", "QD", "KD"]
Cards[35] = 11
Cards[36] = 10
Cards[37] = 10
Cards[38] = 10
Cards[39] = 11
Cards[40] = 10
Cards[41] = 10
Cards[42] = 10
Cards[43] = 11
Cards[44] = 10
Cards[45] = 10
Cards[46] = 10
Cards[47] = 11
Cards[48] = 10
Cards[49] = 10
Cards[50] = 10
Players = raw_input("How many players are there?")
for i in range Players:
Player i = []
Player i.append(choice(Cards))
Player i.append(choice(Cards))
tp = total(player)
print "Player" + i + "Cards: " + Player i + "," + "total: " + tp
hitorstand = raw_input("hit (h) or stand (s)?")
if hitorstand == "h":
Player i.append(choice(cards))
print ("hit (h) or stand (s)?")
elif hitorstand == "s":
break
else print "Please enter h or s"
dealer = []
While True:
dealer.append(choice(cards))
dealer.append(choice(cards))
td = total(dealer)
while td > 17:
dealer.append(choice(cards))
else:
break
if td < tp < 21:
"Player i wins"
else print "dealer wins"
这是我目前所拥有的。我知道有很多乱码和代码不起作用。我想知道你们是否可以让我知道代码有什么问题,也许可以建议一些解决方法。
我现在的主要担忧:
-
我正在制作“多人”二十一点游戏。 我不知道我应该如何为多人二十一点游戏制作循环。 在我的代码中,我问有多少人在玩。如何在不知道的情况下为游戏制作循环 号码是多少?
另外,我如何创建一个函数来在不知道有多少玩家在玩的情况下找出获胜者?
-
输入之后
Players = raw_input("How many players are there?") for i in range Players:for 循环中的
Players给了我一个语法错误。怎么了?
作为更新,我考虑了你所说的关于制作列表的内容 我仍然不明白我应该怎么做 制作代码以找出获胜者。
例如
即使我列出了一个列表,如果我不知道实际有多少玩家在玩,我将无法比较列表中的元素。如果我知道有多少人在玩,
playerlist = [1,2,3]
我可以说
if playerlist[0] > playerlist[1], playerlist[2] and playerlist[0] < 21:
then print "player 1 wins!"
但由于在用户实际输入输入之前我不知道有多少人在玩,所以我不知道应该如何为获胜者编写代码。
我不知道是否有办法说“如果这比其他的大”。我只知道怎么说“如果这比那个大”。
有没有办法在 python 中说“如果这比其他的大”? 如果没有,您能否给我一些建议以制作代码以找出获胜者?
【问题讨论】:
-
应该是
for i in range(Players),而不是for i in range Players。 -
二十一点问题是怎么回事? stackoverflow.com/questions/11724954/…
标签: python multiplayer blackjack