Juego sencillo en Python (BlackJack)

Related image

Este juego YA CUENTA CON INTERFAZ GRAFICA! DA CLICK AQUI

El dia de hoy vamos a ver un Juego codificado en Python muy sencillo, es el clásico juego de casino "BlackJack", en donde el objetivo clave es tratar de tener en tus cartas la suma de un 21, o al menos quedar cerca de él, o no pasarte, ya que de lo contrario habrás perdido

En esta versión sencilla de BlackJack, las reglas cambian un poco para hacer mas fácil su codificación, pero siempre teniendo el objetivo principal en mente.

Se elegirán los jugadores deseados: 1, 2 ó 3. Cada uno introducirá su nombre y esperará a que el oponente acabe su turno, esperando tener una mejor suerte que él.
Al final, gana aquel que tenga o se acerque más 21. Todo es cuestión de buenas elecciones y mucha MUCHA SUERTE.

Como en las reglas tradicionales las cartas "J", "Q", "K" tienen un valor de 10, y el "A's" cuenta con un valor de 11 o 1, dependiendo de la decisión del usuario.

El código cuenta con 2 librerías solamente, ya que se juega directamente en el interprete de Python o en la consola de PyCharm. Estas librerías son Random y Time, que son simplemente para seleccionar al un número de carta al Azar y para darle un poco de pausa al juego, ya que queremos que haya algo de emoción.

Sin más que decir, aquí está el código, espero que disfruten mi versión de BlackJack. Y estén atentos muy pronto para una versión futura, mejor implementada y con Interfaz Gráfica!

#Librerias
import random
import time

#Variables Globales
global cartas
cartas = ["A",2,3,4,5,6,7,8,9,10,"J","Q","K"]

global nombrejugadores
nombrejugadores = []

#Funciones
def TurnoCartas(nombre):
    total = 0
    eleccion = 1
    i = 1
    deck = []
    print "-Turno de ",nombre,": "

    while (eleccion!=0 & total<21):
        numero = 0
        numerosnaturales = [2,3,4,5,6,7,8,9,10]

        print "\nCarta #",i,": ",
        time.sleep(4)
        numero = random.choice(cartas)
        print "[",numero,"]"

        if(numero=="A"):
            deck.append(numero)
            print "Que valor quieres que tenga tu 'A', 1 u 11?"
            numero = input()
            if(numero!=1 | numero!=11):
                print "PERDISTE POR TRAMPOSO!"
                return 0
                break

        elif(numero == "J"):
            deck.append(numero)
            numero = 10
        elif(numero == "Q"):
            deck.append(numero)
            numero = 10
        elif(numero == "K"):
            deck.append(numero)
            numero = 10

        else:
            deck.append(numero)

        total+=numero
        time.sleep(2)
        if(i>1):
            print "-Total: ", total,"\n"

        if(total<21):
            #deck.append(numero)
            respuesta=2
            while(respuesta==2):
                respuesta = input("1) Pedir otra Carta  2) Mirar tus Cartas  3)Finalizar turno\n")
                if(respuesta==1):
                    i += 1
                elif(respuesta==2):
                    print "-Cartas: ",deck,"\n"
                    time.sleep(3)
                else:
                    eleccion =0
                    return total

        elif(total==21):
            deck.append(numero)
            print "FELICIDADES, has hecho un BLACKJACK!"
            return total
        else:
            print "QUE MALA SUERTE! HAS PERDIDO! "
            return 0

def NombreJugadores(numjugadores):

    for i in range(numjugadores):
        print "Introduce el Nombre del Jugador ", i+1
        nombre = raw_input()
        nombrejugadores.append(nombre)
    print "-" * 72

def Ganador2J(J1,J2, nombre):
    print "El Ganador es: ",
    time.sleep(3)
    if(J1>J2):
        print nombre[0]," Con un Total de ",J1
    elif(J2>J1):
        print nombre[1]," Con un Total de ",J2
    elif(J1==J2):
        print "\nHay un EMPATE!! con un Total de ",J1," en Ambos Jugadores!!"
    else:
        print "\nLos 2 Jugadores PERDIERON!"

def Ganador3J(J1,J2,J3, nombre):
    print "El Ganador es: ",
    time.sleep(3)

    if (J1 > J2 and J1>J3):
        print nombre[0], " Con un Total de ", J1
    elif (J2 > J1 and J2>J3):
            print nombre[1], " Con un Total de ", J2
    elif (J3 > J1 and J3>J2):
            print nombre[2], " Con un Total de ", J3
    elif(J1==J2 and J1!=J3 and J2!=J3):
        print "\nHay un EMPATE!! entre ",nombre[0]," y ",nombre[1]," con un Total de ", J1, " en los Jugadores!!"
    elif (J2 == J3 and J2 != J1 and J3!=J1):
        print "\nHay un EMPATE!! entre ", nombre[1], " y ", nombre[2], " con un Total de ", J2, " en los Jugadores!!"
    elif (J1 == J3 and J1 != J2 and J3!=J2):
        print "\nHay un EMPATE!! entre ", nombre[0], " y ", nombre[2], " con un Total de ", J1, " en los Jugadores!!"
    elif (J1 == J2 and J2 == J3):
        print "\nHay un EMPATE!! con un Total de ", J1, " en TODOS los Jugadores!!"
    else:
        print "\nLos 3 Jugadores PERDIERON!"

#MAIN
continuar = 1
while continuar != 0:
    print "JUEGO DE BLACK JACK"
    print "-"*72
    numjugadores = input("Numero de Jugadores: 1) 1 Jugador  2) 2 Jugadores  3) 3 Jugadores\n")
    NombreJugadores(numjugadores)

    if(numjugadores==1):

        print "Buenas, Jugadores, Vamos a empezar la Partida de BlackJack"
        time.sleep(4)
        print "Inicia el Jugador numero 1"
        time.sleep(2)
        Jugador1 = TurnoCartas(nombrejugadores[0])
        print "Total del Jugador = ",Jugador1,"\n"
        time.sleep(3)
        continuar = input("\nQuieres Jugar Otra Vez???  1)Si   0)No\n")
        del nombrejugadores[:]
        print "-" * 72

    elif(numjugadores==2):

        print "Buenas, Jugadores, Vamos a empezar la Partida de BlackJack"
        time.sleep(4)
        Jugador1 = 0
        Jugador2 = 0
        for i in range(numjugadores):
            print "Inicia el Jugador numero ",i+1
            time.sleep(2)
            if(i==0):
                Jugador1 = TurnoCartas(nombrejugadores[i])
                print "Turno Finalizado. Espera a tu Oponente...\n"
                time.sleep(3)
                print "-" * 72
            else:
                Jugador2 = TurnoCartas(nombrejugadores[i])
                print "Turno Finalizado.\n"

        time.sleep(2)
        print "Eligiendo Ganador",
        time.sleep(2)
        print ".",
        time.sleep(2)
        print ".",
        time.sleep(2)
        print ".\n"
        time.sleep(2)

        Ganador2J(Jugador1,Jugador2,nombrejugadores)
        #jugadores = {nombrejugadores[0]: Jugador1 , nombrejugadores[1]: Jugador2}
        # print "\nEl Ganador es",
        #time.sleep(3)
        #print max(jugadores, key=jugadores.get), " con un Total de ",max(jugadores.values())
        #time.sleep(3)

        continuar = input("\nQuieres Jugar Otra Vez???  1)Si   0)No\n")
        del nombrejugadores[:]
        print "-" * 72

    elif(numjugadores == 3):
        print "Buenas, Jugadores, Vamos a empezar la Partida de BlackJack"
        time.sleep(4)
        Jugador1 = 0
        Jugador2 = 0
        Jugador3 = 0
        for i in range(numjugadores):
            print "Inicia el Jugador numero ", i + 1
            time.sleep(2)
            if (i == 0):
                Jugador1 = int(TurnoCartas(nombrejugadores[i]))
                print "Turno Finalizado. Espera a tu Oponente...\n"
                time.sleep(3)
                print "-" * 72
            elif(i == 1):
                Jugador2 = int(TurnoCartas(nombrejugadores[i]))
                print "Turno Finalizado. Espera a tu Oponente...\n"
                time.sleep(3)
                print "-" * 72
            else:
                Jugador3 = int(TurnoCartas(nombrejugadores[i]))
                print "Turno Finalizado.\n"

        time.sleep(2)
        print "Eligiendo Ganador",
        time.sleep(2)
        print ".",
        time.sleep(2)
        print ".",
        time.sleep(2)
        print ".\n"
        time.sleep(2)

        Ganador3J(Jugador1, Jugador2, Jugador3, nombrejugadores)
        #jugadores = {nombrejugadores[0]: Jugador1, nombrejugadores[1]: Jugador2, nombrejugadores[2]: Jugador3}
        #print "\nEl Ganador es",
        #time.sleep(3)
        #print max(jugadores, key=jugadores.get), " con un Total de ", max(jugadores.values())
        #time.sleep(3)
        continuar = input("\nQuieres Jugar Otra Vez???  1)Si   0)No\n")
        del nombrejugadores[:]

        print "-" * 72

Comments