Soy muy nuevo en Python y he estado intentando hacer un juego de blackjack multijugador en python desde hace un tiempo. He tenido muchos y muchos problemas y me preguntaba si ustedes podrían ayudarme con ellos.Creando un juego de blackjack multijugador
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"
Esto es lo que tengo hasta ahora. Entiendo que hay muchos galimatías y códigos que no funcionarán. Me preguntaba si ustedes pueden decirme qué está mal con el código y tal vez sugerir algunas opciones sobre cómo solucionarlo.
Mis principales preocupaciones en este momento:
estoy haciendo un "multijugador" juego de blackjack. No tengo idea de cómo se supone que debo hacer un ciclo para un juego de blackjack multijugador. En mi código, pregunté cuántas personas están jugando. ¿Cómo hago un ciclo para el juego sin saber cuál será el número?
Además, ¿cómo creo una función para encontrar al ganador sin saber cuántos jugadores están jugando?
después de escribir
Players = raw_input("How many players are there?") for i in range Players:
El
Players
en el bucle for me da un error de sintaxis. ¿Qué está mal?
Como una actualización, he pensado en lo que dijiste acerca de hacer una lista y todavía no entienden realmente cómo debería ir sobre hacer un código para averiguar el ganador.
por ejemplo
incluso si hago una lista, si no sé cuántos jugadores están jugando en realidad, yo no sería capaz de comparar los elementos de la lista. Si supiera cuántas personas estaban jugando,
playerlist = [1,2,3]
puedo decir
if playerlist[0] > playerlist[1], playerlist[2] and playerlist[0] < 21:
then print "player 1 wins!"
Pero ya que no va a saber cuántas personas están jugando hasta que el usuario realmente tipos en la entrada, estoy perdido en cuanto a cómo se supone que debo escribir el código para el ganador.
No sé si hay una manera de decir "si esto es más grande que el resto". Solo sé cómo decir "si esto es más grande que eso".
¿Hay alguna manera de decir "si esto es más grande que el resto" en python? Si no, ¿me puede dar algunas sugerencias para hacer el código para encontrar al ganador?
Debería ser 'para mí en el rango (Jugadores)', no 'para mí en el rango Players'. – Ryan
¿Qué pasa con las preguntas de Blackjack? http://stackoverflow.com/questions/11724954/how-do-i-separate-each-list-for-a-player-in-the-blackjack-game#comment15557653_11724954 – Benjamin