Ver Mensaje Individual
  #10 (permalink)  
Antiguo 15/12/2014, 10:28
Avatar de 12trunks12
12trunks12
 
Fecha de Ingreso: noviembre-2014
Mensajes: 41
Antigüedad: 10 años
Puntos: 1
Respuesta: Como elegir más de un elemento a la vez de una lista

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])