Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: SrVamp en 6 Febrero 2013, 14:24 pm



Título: [Duda] Juego BlackJack python
Publicado por: SrVamp en 6 Febrero 2013, 14:24 pm
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


Título: Re: [Duda] Juego BlackJack python
Publicado por: xassiz~ en 6 Febrero 2013, 15:43 pm
Prueba con la clase random


Título: Re: [Duda] Juego BlackJack python
Publicado por: The_Mushrr00m en 7 Febrero 2013, 05:09 am
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:


Título: Re: [Duda] Juego BlackJack python
Publicado por: fallout20xx en 7 Febrero 2013, 12:01 pm
Sin saber de que va, si me dices que tus cartas estan en una lista podrias hacer esto:

Código:
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:

Código:
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


Título: Re: [Duda] Juego BlackJack python
Publicado por: SrVamp en 11 Febrero 2013, 08:31 am
He intentado hacerlo asi, pero me da ciertos problemas, aver si me podeís ayudar

El codigo es:
Código:
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