[Duda] Juego BlackJack python

Iniciado por SrVamp, 6 Febrero 2013, 14:24 PM

0 Miembros y 1 Visitante están viendo este tema.

SrVamp

Hola usuarios de elhacker.net tengo que hacer el juego del blackjack en python.
De momento, ya he pensado como hacerlo pero a la hora de pasarlo a codigo tengo un problema a la hora de sacar una carta aleatoriamente de la baraja(definida como lista), no se como hacerlo.Espero que alguien puede ayudarme.
Muchas Gracias.
Un saludo


The_Mushrr00m

postea tu code o parte de el para ver que te falta o donde estas equivocado..!

o acaso quieres que te pasemos un code ya hecho  :silbar:
«No hay camino para la verdad, la verdad es el camino»


fallout20xx

Sin saber de que va, si me dices que tus cartas estan en una lista podrias hacer esto:

import random
lista = ['AS', '2', '3', '4', '5','6','7', 'Sota', 'Caballo', 'Rey']
print lista[random.randrange(0, len(lista)-1)]


el modulo random es para hacer cosas aleatorias, en particular random.randrange soporta que le digas desde que numero hasta que numero quieres que el elija uno de manera aleatoria, por ejemplo si quieres un numero del 20 al 6000 seria:

import random
print random.randrange(20, 6000)


lo que hago yo en el codigo que te pongo es decirle que quiero un numero desde 0 que seria el primer valor de la lista, hasta len(lista) que es el numero de registros que tiene la lista, pero como el contador de la lista empieza desde 0 y no desde 1 hay que quitarle 1 para que el random nunca devuelva 10, que seria el numero de elementos que tiene la lista, pero el contador de la lista va desde el 0 hasta el 9 (10 elementos).
al usar este numero aleatorio como marcador en la lista, lo que me devuelve es, de hecho, una carta aleatoria.

un saludo
si disfrutas siempre que programas... significa que aun no has programado suficiente xD

SrVamp

He intentado hacerlo asi, pero me da ciertos problemas, aver si me podeís ayudar

El codigo es:
import random
banca=[11,11,11,11,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10]
mano1=random.randint(0,51)
mano2=random.randint(0,51)
mano3=random.randint(0,51)
mano4=random.randint(0,51)
mano5=random.randint(0,51)
mano6=random.randint(0,51)
mano7=random.randint(0,51)
mano8=random.randint(0,51)
mano9=random.randint(0,51)
mano10=random.randint(0,51)
mano11=random.randint(0,51)
banca1=random.randint(0,51)
banca2=random.randint(0,51)
banca3=random.randint(0,51)
banca4=random.randint(0,51)
banca5=random.randint(0,51)
banca6=random.randint(0,51)
banca7=random.randint(0,51)
banca8=random.randint(0,51)
banca9=random.randint(0,51)
banca10=random.randint(0,51)
banca11=random.randint(0,51)
hand=banca[mano1]+banca[mano2]
srmalo=banca[banca1]+banca[banca2]

print("En tu mano tienes " + str(hand))

pregunta1=int(input("Quieres mas cartas? 1 si la respuesta es si y si es no escribe 0"))
if pregunta1 == 0:
    if  srmalo<=17:
        srmalo=banca[banca1]+banca[banca2]+banca[banca3]
        if  srmalo<=17:
            srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]
            if  srmalo<=17:
                srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]
                if  srmalo<=17:
                    srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]
                    if  srmalo<=17:
                        srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]
                        if  srmalo<=17:
                            srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]+banca[banca8]
                            if  srmalo<=17:
                                srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]+banca[banca8]+banca[banca9]
                                if  srmalo<=17:
                                    srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]+banca[banca8]+banca[banca9]+banca[banca10]
                                    if  srmalo<=17:
                                        srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]+banca[banca8]+banca[banca9]+banca[banca10]+banca[banca11]

if pregunta1 == 0:
    if (hand<=21) and ((srmalo>hand) and srmalo>22):
        print("La banca tiene " + str(srmalo))
        print("Has ganado")
    else:
        print("La banca tiene " + str(srmalo))
        print("Has perdido")


if pregunta1 == 1:
    hand=banca[mano1]+banca[mano2]+banca[mano3]
    print("En tu mano tienes " + str(hand))
    pregunta2=int(input("Quieres mas cartas? 1 si la respuesta es si y si es no escribe 0"))
    if pregunta2 == 0:
        if  srmalo>21:
            srmalo=banca[banca1]+banca[banca2]+banca[banca3]
            if  srmalo>21:
                srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]
                if  srmalo>21:
                    srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]
                    if  srmalo>21:
                        srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]
                        if  srmalo>21:
                            srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]
                            if  srmalo>21:
                                srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]+banca[banca8]
                                if  srmalo>21:
                                    srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]+banca[banca8]+banca[banca9]
                                    if  srmalo>21:
                                        srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]+banca[banca8]+banca[banca9]+banca[banca10]
                                        if  srmalo>21:
                                            srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]+banca[banca8]+banca[banca9]+banca[banca10]+banca[banca11]


    if pregunta2 == 0:
        if (hand<=21) and ((srmalo>hand) and srmalo>22):
            print("La banca tiene " + str(srmalo))
            print("Has ganado")
        else:
            print("La banca tiene " + str(srmalo))
            print("Has perdido")


    if pregunta2 == 1:
        hand=banca[mano1]+banca[mano2]+banca[mano3]
        print("En tu mano tienes " + str(hand))
        pregunta3=int(input("Quieres mas cartas? 1 si la respuesta es si y si es no escribe 0"))
        if pregunta3 == 0:
            if  srmalo>21:
                srmalo=banca[banca1]+banca[banca2]+banca[banca3]
                if  srmalo>21:
                    srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]
                    if  srmalo>21:
                        srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]
                        if  srmalo>21:
                            srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]
                            if  srmalo>21:
                                srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]
                                if  srmalo>21:
                                    srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]+banca[banca8]
                                    if  srmalo>21:
                                        srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]+banca[banca8]+banca[banca9]
                                        if  srmalo>21:
                                            srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]+banca[banca8]+banca[banca9]+banca[banca10]
                                            if  srmalo>21:
                                                srmalo=banca[banca1]+banca[banca2]+banca[banca3]+banca[banca4]+banca[banca5]+banca[banca6]+banca[banca7]+banca[banca8]+banca[banca9]+banca[banca10]+banca[banca11]

            if pregunta3 == 0:
                if (hand<=21) and ((srmalo>hand) and srmalo>22):
                    print("La banca tiene " + str(srmalo))
                    print("Has ganado")
                else:
                    print("La banca tiene " + str(srmalo))
                    print("Has perdido")




Si sabeís como remediarlo o una forma más sencilla de hacer el blackjack se agradecería una ayudica.
Un Saludo
Muchas Gracias