Jestem bardzo nowym użytkownikiem Pythona i od pewnego czasu próbuję stworzyć grę w blackjacka dla wielu graczy na Pythonie. Miałem wiele problemów i zastanawiałem się, czy możecie mi pomóc.Tworzenie gry w blackjacka dla wielu graczy
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"
To jest to, co do tej pory miałem. Rozumiem, że jest dużo bełkotu i kodu, który nie zadziała. Zastanawiam się, czy możesz mi powiedzieć, co jest nie tak z kodem i może zasugerować kilka opcji, jak to naprawić.
Moje główne obawy właśnie teraz:
Robię "multiplayer" blackjack gry. Nie mam pojęcia, jak mam zrobić pętlę do gry w blackjacka dla wielu graczy. W moim kodzie pytałem, ile osób gra. Jak utworzyć pętlę do gry, nie wiedząc, jaki będzie numer?
Ponadto, w jaki sposób mogę utworzyć funkcję, aby znaleźć zwycięzcę, nie wiedząc, ilu graczy gra?
Po wpisaniu w
Players = raw_input("How many players are there?") for i in range Players:
Players
w pętli daje mi błąd składni. Co jest nie tak?
jako aktualizacja, myślałem o tym, co powiedział na temat tworzenia listy a ja nadal nie bardzo rozumiem w jaki sposób powinny przejść o dokonywania kod, aby dowiedzieć się zwycięzcą.
np
nawet jeśli zrobię listę, jeśli nie wiem, ilu graczy są rzeczywiście gra, nie będzie w stanie porównać elementy na liście. Gdybym wiedział, jak wiele osób gra,
playerlist = [1,2,3]
mogę powiedzieć
if playerlist[0] > playerlist[1], playerlist[2] and playerlist[0] < 21:
then print "player 1 wins!"
Ale ponieważ nie będę wiedzieć, ile osób gra, dopóki użytkownik faktycznie typów w wejściu, jestem zagubiony o tym, jak mam napisać kod dla zwycięzcy.
Nie wiem, czy istnieje sposób na powiedzenie "jeśli jest większy niż reszta". Wiem tylko, jak powiedzieć "jeśli jest większy".
Czy istnieje sposób na powiedzenie "jeśli jest większy niż reszta" w python? Jeśli nie, czy możesz podać kilka sugestii, jak wprowadzić kod, aby znaleźć zwycięzcę?
Powinno to być 'dla i w zakresie (Gracze)', a nie 'dla mnie w zakresie Gracze'. – Ryan
Co jest z pytaniami o blackjacka? http://stackoverflow.com/questions/11724954/how-do-i-separate-each-list-for-a-player-in-the-blackjack-game#comment15557653_11724954 – Benjamin