Está en la página 1de 9

#Otra=1

#Paso=0
#-*- coding: utf-8 -*-

#----------------------------------------
Integrantes--------------------------------------------------
"""
Vasquez Gamboa, Jhonatan Patrick código: 20200131F
Paredes Mateo, Eduard Rafael código: 20202065K
Valerio Contreras, Cristhian jesus código: 20202040H
Yaun Espada, Jean Brian código: 20200050F
"""
#---------------------------------------------------
variables----------------------------------------------------------

import random
carta_suma=[];
matriz=[];
suma_dealer = 0;
lista_dealer = [];
lista_dealer_int = [];
cartas_jugadores=[];
contador = 0;
cartas = [];
indice = 1;
reglas = "";
inicio = 0;

#---------------------------------------------------
Funciones----------------------------------------------------------

def funcion_barajar(lista):
lista_nueva = [];
valor1 = random.randint(0,len(lista)-1);
lista_nueva.append(lista[valor1]);
valor2 = random.randint(0,len(lista)-1);
while valor2 == valor1:
valor2 = random.randint(0,len(lista)-1);
lista_nueva.append(lista[valor2]);
while len(lista_nueva) < len(lista):
valor3 = random.randint(0,len(lista)-1);
for item in range(0,len(lista_nueva)):
if lista_nueva[item] == lista[valor3]:
break
else:
if item == len(lista_nueva)-1:
lista_nueva.append(lista[valor3]);
else:
continue;
return(lista_nueva);

def funcion_eliminar(lista):
nueva_lista = [];
for item in range(1, len(lista)):
nueva_lista.append(lista[item]);
return nueva_lista;

def funcion_eliminar_simbolo(lista):
nueva_lista = [];
for item in range(0, len(lista)):
string = str(lista[item]);
numero = "";
for item2 in range(0, len(string)-1):
numero += string[item2];
if numero == "K" or numero =="Q" or numero == "J":
numero = 10;
elif numero == "A":
numero = 0;
numero = int(numero);
nueva_lista.append(numero);
return nueva_lista;

#-------------------------------------------------------Inicio del
juego--------------------------------------------------

print("\n Bienvenidos al juego de Blackjack");


print("----------------------------------------------------------------------------
----------------------------\n");

cartas=["A♥","2♥","3♥","4♥","5♥","6♥","7♥","8♥","9♥","10♥","J♥","Q♥","K♥",
"A♦","2♦","3♦","4♦","5♦","6♦","7♦","8♦","9♦","10♦","J♦","Q♦","K♦",
"A♠","2♠","3♠","4♠","5♠","6♠","7♠","8♠","9♠","10♠","J♠","Q♠","K♠",
"A♣","2♣","3♣","4♣","5♣","6♣","7♣","8♣","9♣","10♣","J♣","Q♣","K♣"];

#-----------------------------------------------------Lista de los
jugadores----------------------------------------------

while contador == 0:
contador = 1;
reglas = str(input("¿Desea conocer las reglas del juego?: "));
if reglas == "sí":
print("\n1. Escribir 1 para pedir carta");
print("2. Escribir 0 para pasar el turno")
print("3. Al principio se reparten dos cartas");
print("4. El ganador será aquel cuya suma de cartas sea 21 o lo más cercano
a 21");
print("5. Si nadie llega a 21, el ganador será aquel cuya suma de cartas
este lo más próximo a 21, sin pasarlo");
print("6. El \"J\", la \"Q\" y la \"K\" valen 10");
print("7. El as puede vale 1 o 11 dependiendo del jugador\n");

elif reglas == "no":


print("");

else:
print("Debe colocar \"sí\" o \"no\"\n");
contador = 0;

numero_jugadores1 = input("Ingrese el número de jugadores: ");

entero=0; numeros=["1","2","3","4","5","6"];
while(entero == 0):
for item in numeros:
if numero_jugadores1 == item:
entero = 1;
break;

else:
print ("\nError")
numero_jugadores1 = input("Ingrese el número de jugadores: ");

numero_jugadores = int(numero_jugadores1);

dealer = str(input("¿Desea que haya un dealer?: "));


while (dealer!="sí" and dealer!="no"):
print("\nDebe colocar \"sí\" o \"no\"");
dealer=input("¿Desea que haya un dealer Dealer?: ");

print("\n");

#---------------------------Elección-del-Dealer-----------------------------------

if dealer == "sí":

cartas = funcion_barajar(cartas);

for item in range(numero_jugadores):


lista = [];
cartas_jugadores.append(lista);

for item in range(0,numero_jugadores):


cartas_jugadores[item] = [];
matriz.append(cartas_jugadores[item]);

lista = funcion_eliminar_simbolo(lista);

for iniciador in range (0,numero_jugadores*2+1,1):


if iniciador < numero_jugadores:
cartas_jugadores[iniciador].append(cartas[0]);
cartas = funcion_eliminar(cartas);
if numero_jugadores*2 > iniciador >= numero_jugadores:
cartas_jugadores[iniciador-numero_jugadores].append(cartas[0]);
cartas = funcion_eliminar(cartas);
else:
continue;

dealer = 1;

if dealer == 1:
for item in range(0,2):
lista_dealer.append(cartas[0]);
cartas = funcion_eliminar(cartas);
lista_dealer_int = funcion_eliminar_simbolo(lista_dealer);

if lista_dealer_int[0]==0 and lista_dealer_int[1]==10:


lista_dealer_int[0]=11

elif lista_dealer_int[0]==10 and lista_dealer_int[1]==0:


lista_dealer_int[1]=11

elif lista_dealer_int[0]==0 and lista_dealer_int[1]!=10:


lista_dealer_int[0]=1
elif lista_dealer[0]!=10 and lista_dealer_int[1]==0:
lista_dealer_int[1]=1

elif lista_dealer[0]==0 and lista_dealer_int[1]==0:


lista_dealer_int[0]=1
lista_dealer_int[1]=11

indice = 1
for elemento in cartas_jugadores:
print("Jugador %s: "%(indice),elemento);
indice = indice + 1;

print(" Dealer: ", lista_dealer);

#-----------------------------------------------------
Jugadas----------------------------------------------------

contador = 0;
while contador!= numero_jugadores:
valor = input("\nJugador %s, elija su siguiente movimiento: "%
(contador+1));

entero=0; numeros=["1","0"]
while(entero == 0):
for item in numeros:
if valor == item:
valor=int(valor)
entero=1
break;
else:
print ("\nError")
valor = input("Ingrese una movimiento válido: ");

if valor == 0:
print("\nEl jugador", contador+1," hace señal de negación con la
mano.");
print("""Jugador %s pasa su turno,sus cartas son:\n
Jugador%s=%s"""%
(contador+1,contador+1,cartas_jugadores[contador]),"\n");
contador += 1;

elif valor == 1:
print("\nEl jugador %s da dos toques a la mesa."%(contador+1));
cartas_jugadores[contador].append(cartas[0]);
cartas=funcion_eliminar(cartas);
print("""Se reparte una carta al jugador %s,sus cartas son:\n
Jugador%s=%s"""%
(contador+1,contador+1,cartas_jugadores[contador]),"\n");

else:
print("Error");
break;

lista_sumas=[];
for item in range(0, numero_jugadores):
suma = 0;
cartas_jugadores[item] = funcion_eliminar_simbolo(cartas_jugadores[item])
for item2 in range(0, len(cartas_jugadores[item])):
suma += cartas_jugadores[item][item2];
lista_sumas.append(suma);

if dealer == 1:
while suma_dealer < 21:
suma_dealer = 0;
for item in range(0,len(lista_dealer_int)):
suma_dealer += lista_dealer_int[item];

if suma_dealer >= 17:


print("El dealer no desea coger ninguna carta\n");
break;

elif 14 <= suma_dealer < 17:


valor=random.randint(0,1);
if valor == 0:
print("\nEl dealer no desea coger ninguna carta");
print("\nLas cartas del dealer son: ",lista_dealer);
break;

else:
print("\nEl dealer coge una carta");
lista_dealer.append(cartas[0]);
carta_dealer=[];
carta_dealer.append(cartas[0]);
cartas=funcion_eliminar(cartas);
carta_dealer = funcion_eliminar_simbolo(carta_dealer);
lista_dealer_int.append(carta_dealer[0]);
print("\nLas cartas del dealer son: ",lista_dealer);

elif suma_dealer < 14:


print("\nEl dealer coge una carta");
lista_dealer.append(cartas[0]);
carta_dealer = [];
carta_dealer.append(cartas[0]);
cartas=funcion_eliminar(cartas);
carta_dealer = funcion_eliminar_simbolo(carta_dealer);
lista_dealer_int.append(carta_dealer[0]);
print("\nLas cartas del dealer son: ",lista_dealer,"\n");

if lista_dealer_int[-1] == 0:
lista_dealer_int[-1] = 1;

lista_sumas.append(suma_dealer);

cartas_jugadores.append(lista_dealer_int);

else:
print(cartas_jugadores);
print(lista_sumas);

#-------------------------------------------Elegir-el-valor-del-
as--------------------------------------------------

for item in range (0,numero_jugadores):


suma = 0;
for item2 in range(0,len(cartas_jugadores[item])):
if cartas_jugadores[item][item2] == 0:
orden = int(input("\nJugador %s,¿Cual desea que sea el valor del
as?¿1 o 11?: "%(item+1)));

while(orden != 1 and orden != 11):


print("\nError")
orden = int(input("¿Cual desea que sea el valor del as?¿1 o
11?: "));

if orden == 1:
cartas_jugadores[item][item2] = 1;

else:
cartas_jugadores[item][item2] = 11;
suma += cartas_jugadores[item][item2];
carta_suma.append(suma);
print("\nJugador ",item + 1,", la suma de sus cartas es:
",carta_suma[item]);
print("\nDealer, la suma de sus cartas es: ",lista_sumas[-1]);

#-------------------------------------Elección-
ganador--------------------------------------------

jugadores_ganaron=[];
carta_suma.append(suma_dealer)
ganador={"Valor ganador":0,"¿Hay empates?":0};
for sumas in range(len(carta_suma)):
if(carta_suma[sumas] > 21):
continue;

else:
if(carta_suma[sumas] > ganador["Valor ganador"]):
ganador["Valor ganador"] = carta_suma[sumas];
ganador["¿Hay empates?"] = "No hay empates";
jugadores_ganaron = [];
jugadores_ganaron.append(sumas + 1);

elif(carta_suma[sumas] == ganador["Valor ganador"]):


ganador["Valor ganador"] = carta_suma[sumas];
ganador["¿Hay empates?"] = "Sí hubo empates";
jugadores_ganaron.append(sumas + 1);

print("\n",ganador);

dealer_ganador=0
for dealer in jugadores_ganaron:
if dealer==numero_jugadores+1:
dealer_ganador=1

if(dealer_ganador==1):
if len(jugadores_ganaron) > 1:
for ganadores in range(len(jugadores_ganaron)-1):
print("\nLos jugadores que ganaron son: Jugador%s"%
(jugadores_ganaron[ganadores]));
print("\nLos jugadores que ganaron son: Dealer")

else:
print("\nEl jugador que ganó es el Dealer");
else:
if len(jugadores_ganaron) > 1:
for ganadores in range(len(jugadores_ganaron)):
print("\nLos jugadores que ganaron son: Jugador%s"%
(jugadores_ganaron[ganadores]));

else:
print("\nEl jugador que ganó es: Jugador%s"%(jugadores_ganaron[0]));

if ganador["Valor ganador"] == 21:


print("...................BLACKJACK........................");

print("\n--------------------------------------------Game-
over-------------------------------------------------");

elif dealer == "no":

cartas = funcion_barajar(cartas);

for item in range(numero_jugadores):


lista = [];
cartas_jugadores.append(lista);

for item in range(0,numero_jugadores):


cartas_jugadores[item] = [];
matriz.append(cartas_jugadores[item]);

lista = funcion_eliminar_simbolo(lista);

for iniciador in range (0,numero_jugadores*2+1,1):


if iniciador < numero_jugadores:
cartas_jugadores[iniciador].append(cartas[0]);
cartas = funcion_eliminar(cartas);

if numero_jugadores*2 > iniciador >= numero_jugadores:


cartas_jugadores[iniciador-numero_jugadores].append(cartas[0]);
cartas = funcion_eliminar(cartas);

else:
continue;

print("\nSe reparten las cartas\n");


indice=1;
for elemento in cartas_jugadores:
print("Jugador %s: "%(indice),elemento);
indice = indice + 1;

cartas = funcion_barajar(cartas);

lista = funcion_eliminar_simbolo(lista);

print("\n--------------------------------------------------------------------------
----------------------------");
print(" ¡Que empiecen las apuestas!");

print("----------------------------------------------------------------------------
--------------------------\n");

#-----------------------------------------------------
Jugadas-------------------------------------------------------

contador = 0;
while contador != numero_jugadores:

contador = 0;
for item in range(0,numero_jugadores):
movimiento=input("Jugador %s, decida su siguiente movimiento: "%
(item+1));
while (movimiento != "1" and movimiento != "0"):
print("\nError, solo movimientos válidos");
movimiento=input("Jugador %s decida su siguiente movimiento: "%
(item+1));

else:
if movimiento == "1":
print("\nJugador %s da dos toques a la mesa"%(item+1));
cartas_jugadores[item].append(cartas[0]);
cartas= funcion_eliminar(cartas);
print("""Se reparte una carta al jugador %s,sus cartas son:\n
Jugador%s=%s"""%(item+1,item+1,matriz[item]),"\n");

elif movimiento == "0":


print("\nJugador %s hace señal de negación con la mano"%
(item+1));
contador += 1;
print("""Jugador %s pasa su turno,sus cartas son:\n
Jugador%s=%s"""%(item+1,item+1,matriz[item]),"\n");

#-------------------------------------------Elegir-el-valor-del-
as----------------------------------------------------

for item in range (0,numero_jugadores):


cartas_jugadores[item] = funcion_eliminar_simbolo(cartas_jugadores[item]);
suma = 0;
for item2 in range(0,len(cartas_jugadores[item])):
if cartas_jugadores[item][item2] == 0:
orden = int(input("Jugador %s,¿Cual desea que sea el valor del as?
¿1 o 11?: "%(item+1)));
while(orden != 1 and orden != 11):
orden = int(input("¿Cual desea que sea el valor del as?¿1 o
11?: "));

if orden == 1:
cartas_jugadores[item][item2] = 1;

else:
cartas_jugadores[item][item2] = 11;
suma += cartas_jugadores[item][item2];
carta_suma.append(suma);
print("Jugador ",item + 1,", la suma de sus cartas es:
",carta_suma[item],"\n");

#------------------------------------------------------Elegir-
ganador-------------------------------------------------
print("--------------------------------------Elección-del-
ganador--------------------------------------------\n");

jugadores_ganaron=[];
ganador={"Valor ganador":0,"¿Hay empates?":0};
for sumas in range(len(carta_suma)):
if(carta_suma[sumas] > 21):
continue;

else:
if(carta_suma[sumas] > ganador["Valor ganador"]):
ganador["Valor ganador"] = carta_suma[sumas];
ganador["¿Hay empates?"] = "No hay empates";
jugadores_ganaron = [];
jugadores_ganaron.append(sumas + 1);

elif(carta_suma[sumas] == ganador["Valor ganador"]):


ganador["¿Hay empates?"] = "Sí hubo empates";
jugadores_ganaron.append(sumas + 1);

print(ganador);

if len(jugadores_ganaron) > 1:
for ganadores in range(len(jugadores_ganaron)):
print("\nLos jugadores que ganaron son: Jugador%s"%
(jugadores_ganaron[ganadores]));
else:
for ganadores in range(len(jugadores_ganaron)):
print("\nEl jugador que ganó es: Jugador%s"%
(jugadores_ganaron[ganadores]));

if ganador["Valor ganador"] == 21:


print("...................BLACKJACK........................");

print("\n--------------------------------------------Game-
over-------------------------------------------------");

También podría gustarte