Ok perdona por lo de falta de datos, es que tampoco quería pasar el código entero porque son unas 150 líneas y tardaríais en leerlo, pero os lo resumo ahora y os cuento que necesito saber:
Código entero:
Código:
import random
print()
print()
print("-------------------------Bienvenidos al juego de cartas-------------------------")
print()
print("Las reglas son sencillas: Te daremos 3 cartas y en la mesa habrá 4")
print("Deberás de sumar 15 con UNA de tus cartas junto con las que quieres de la mesa")
print("Responde a las preguntas con números en")
#########################------------BARAJA----------####################
palos = ["Oros", "Espadas", "Bastos", "Copas"]
valor = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
valores = [valor for valor in range(1, 11)]
baraja = [(valor, palo) for palo in palos for valor in valores]
cartas_mano = []
def repartir():
global cartas_mano
cartas_mano = []
carta_1 = random.choice(baraja)
baraja.remove(carta_1)
cartas_mano.append(carta_1)
carta_2 = random.choice(baraja)
baraja.remove(carta_2)
cartas_mano.append(carta_2)
carta_3 = random.choice(baraja)
baraja.remove(carta_3)
cartas_mano.append(carta_3)
global intentos_cartas
intentos_cartas = 3
#######-----MONTÓN----########
montón = []
#########-----MESA-----#############
cartas_mesa = []
carta_mesa_1 = random.choice(baraja)
baraja.remove(carta_mesa_1)
cartas_mesa.append(carta_mesa_1)
carta_mesa_2 = random.choice(baraja)
baraja.remove(carta_mesa_2)
cartas_mesa.append(carta_mesa_2)
carta_mesa_3 = random.choice(baraja)
baraja.remove(carta_mesa_3)
cartas_mesa.append(carta_mesa_3)
carta_mesa_4 = random.choice(baraja)
baraja.remove(carta_mesa_4)
cartas_mesa.append(carta_mesa_4)
#######################--------------JUEGO-------------#####################
intentos_cartas = int(3)
def ronda():
global intentos_cartas
while intentos_cartas > 0:
intentos_cartas = intentos_cartas - 1
print()
print(" CARTAS DE LA MESA:")
print(cartas_mesa)
print()
print(" TU MANO:")
print("Así es tu mano:", cartas_mano)
print()
print(intentos_cartas)
try: #CARTA QUE TIENE QUE ECHAR
pregunta_echar = int(input("Que carta deseas echar?(di la posición): "))
respuesta_echar = cartas_mano[pregunta_echar - 1]
print(respuesta_echar)
pregunta_coger = str(input("¿Deseas coger alguna carta? ")).lower()
if pregunta_coger == "no": #SI NO QUIERE COGER CARTAS DE LA MESA
cartas_mesa.append(respuesta_echar) ###---AÑADIMOS LA CARTA ECHADA A LA MESA
cartas_mano.remove(respuesta_echar) ###---ELIMINAMOS LA CARTA ECHADA DE LA MANO
print("Ahora la mesa está así: ", cartas_mesa)
if intentos_cartas > 0:
print("Ahora tu mano está así: ", cartas_mano)
print()
else:
print("No te quedan cartas, ahora te damos otras 3")
elif pregunta_coger == "sí" or pregunta_coger == "si": #SI QUIERE COGER CARTAS DE LA MESA
#pregunta_mesa = int(input("Que carta/s deseas coger?(di la posición): "))
#respuesta_coger = cartas_mesa[pregunta_mesa - 1]
pregunta_mesa = input("Que carta/s deseas coger?(di la posición/-es separadas por coma): ") # 1,4
respuesta_coger = pregunta_mesa.split(',') # ["1","4"]
elección_1 = cartas_mesa[int(respuesta_coger[0]) - 1]
print(elección_1)
suma_15 = int(respuesta_echar[0] + elección_1[0] + elección_2[0])
if suma_15 == int(15):
print()
print("¡BIEN!")
print()
####---MONTON DE CARTAS RECOGIDAS
global montón
montón = montón + [respuesta_coger, respuesta_echar]
print("El montón", montón)
###---ELIMINAMOS LAS CARTAS USADAS DE LA MESA Y LA MANO
cartas_mano.remove(respuesta_echar)
cartas_mesa.remove(respuesta_coger)
print("Ahora la mesa está así: ", cartas_mesa)
print("Ahora tu mano está así: ", cartas_mano)
print()
else: #SI LA SUMA NO DA 15
print()
print("La suma no da 15, la carta ha sido añadida a la mesa")
print()
###---ELIMINAMOS LAS CARTAS USADAS DE LA MANO Y LA AÑADIMOS A LA MESA
cartas_mesa.append(respuesta_echar)
cartas_mano.remove(respuesta_echar)
intentos_cartas = intentos_cartas + 1
print()
print("Responda con Sí o No")
except ValueError:
intentos_cartas = intentos_cartas + 1
print()
print("Indique un número entero válido(del 1 al 3)")
El problema está a partir de la línea 108, porque lo que quiero es esto:
1.- Tengo unas cartas en la mano
2.- Hay unas cartas en la mesa
3.- Echo obligatoriamente una carta de mi mano
4.- Quiero coger más de una carta de la mesa(aquí está el problema)
Lo que hice para realizar el paso 4 pues obviamente poner un input, ahora eso lo quiero transformar a la posición de la cartas_mesa que es la lista que contiene las cartas de la mesa y no se muy bien como hacerlo ya que con .split lo que hago es crear otra lista con los valores puestos(por ejemplo si pongo 1,5,6 aparece ['1', '5', '6'] y necesito que esos 3 valores sean cartas_mesa[1], cartas_mesa[5] y cartas_mesa[6])