Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Como comparar una respuesta con un elemento de una lista

Estas en el tema de Como comparar una respuesta con un elemento de una lista en el foro de Python en Foros del Web. Hola de nuevo, bueno mi problema esta vez es que estoy creando un juego de cartas, se llama la escoba y tienes que conseguir sumar ...
  #1 (permalink)  
Antiguo 28/11/2014, 15:55
Avatar de 12trunks12  
Fecha de Ingreso: noviembre-2014
Mensajes: 41
Antigüedad: 10 años
Puntos: 1
Como comparar una respuesta con un elemento de una lista

Hola de nuevo, bueno mi problema esta vez es que estoy creando un juego de cartas, se llama la escoba y tienes que conseguir sumar 15 entre una de tus cartas con las que haya en la mesa. Por ahora tengo hecha la baraja, la mano de cada uno y las cartas de la mesa. El problema ahora es que no consigo comparar la respuesta (que sería: que cartas quieres echar?) con la carta que tienes en la mano (es decir que la carta que tienes efectivamente la tienes en la mano y el juego es correcto).
Os dejo el código y el problema que me da python, espero que me podais aconsejar con alguna manera de hacerlo:
Código:
#!/usr/bin/python
import random

#########################------------BARAJA----------####################
def generar_baraja():
    palos = ["Oros", "Espadas", "Bastos", "Copas"]
    valores = [valor for valor in range(1, 8)]+["Sota", "Caballo", "Rey"]
    return[(valor, palo) for palo in palos for valor in valores]

baraja = generar_baraja()

#########-----MANO----#########
carta_1 = random.choice(baraja)
print(carta_1)
baraja.remove(carta_1)
carta_2 = random.choice(baraja)
baraja.remove(carta_2)
carta_3 = random.choice(baraja)
baraja.remove(carta_3)
carta_4 = random.choice(baraja)
baraja.remove(carta_4)

#########-----MESA-----#############
carta_mesa_1 = random.choice(baraja)
baraja.remove(carta_mesa_1)
carta_mesa_2 = random.choice(baraja)
baraja.remove(carta_mesa_2)
carta_mesa_3 = random.choice(baraja)
baraja.remove(carta_mesa_3)
carta_mesa_4 = random.choice(baraja)
baraja.remove(carta_mesa_4)


#######################--------------JUEGO-------------#####################

print("                          CARTAS DE LA MESA:")
cartas_mesa = [carta_mesa_1, carta_mesa_2, carta_mesa_3, carta_mesa_4]
print(cartas_mesa)
print()

print("                               TU MANO:")
cartas_mano = [carta_1, carta_2, carta_3, carta_4]
print(cartas_mano)
print()


#OPCION 1 PARA COMPARAR
pregunta_mano = cartas_mano.index(input("Que carta deseas echar?: "))

#OPCIÓN 2 PARA COMPARAR
if pregunta_mano in cartas_mano == True:
    #aquí no se que poner para seguir con el juego, pero estaba pensando en un simple quit()
Y el problema:

Última edición por 12trunks12; 28/11/2014 a las 16:10
  #2 (permalink)  
Antiguo 29/11/2014, 09:52
Avatar de 12trunks12  
Fecha de Ingreso: noviembre-2014
Mensajes: 41
Antigüedad: 10 años
Puntos: 1
Respuesta: Como comparar una respuesta con un elemento de una lista

Bueno he conseguido arreglarlo haciendo esto:
Código:
pregunta_echar = int(input("Que carta deseas echar?(di la posición): "))
respuesta_echar = cartas_mano[pregunta_echar:(pregunta_echar+1)]
print(respuesta_echar)

pregunta_mesa = int(input("Que carta/s deseas coger?: "))
respuesta_coger = cartas_mesa[pregunta_mesa:(pregunta_mesa+1)]
print(respuesta_coger)
Ahora el problema que tengo es como hacer que coja solo el valor de la carta (1,2,3...) y el otro valor de la carta de la mesa y los sume, dejando atrás el palo('Espadas','Copas'....)
  #3 (permalink)  
Antiguo 29/11/2014, 12:51
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Como comparar una respuesta con un elemento de una lista

Pues validalo? Cual es problema?

Código Python:
Ver original
  1. number = 10
  2. # Validar entre 1 y 5
  3. if number >= 1 and number <= 5:
  4.     print("entre 5 y 1")
  5. else:
  6.     print("No esta entre 1 y 5")

O si prefieres
Código Python:
Ver original
  1. number = 10
  2. # Validar entre 1 y 5
  3. if 1 <= number <= 5:
  4.     print("%d in range 1, 5" % number))
  5. else:
  6.     print("%d NOT in range 1, 5" % number)

Lo mismo para validar si necesitas estar dentro de una opción.
Código Python:
Ver original
  1. option_list = ['a', 'b', 'c', 'd', 'e']
  2. option = 'c'
  3. if option in option_list:
  4.     print("option %s is in option_list %s" % (option, option_list))
  5. else:
  6.     print("option %s is NOT in option_list %s" % (option, option_list))
  #4 (permalink)  
Antiguo 30/11/2014, 14:25
Avatar de 12trunks12  
Fecha de Ingreso: noviembre-2014
Mensajes: 41
Antigüedad: 10 años
Puntos: 1
Respuesta: Como comparar una respuesta con un elemento de una lista

El problema es que es una tupla. Por ejemplo una carta es así: [(6, 'Espadas')] , y no se como hacer para elegir solo el número 6 para sumarlo con otro de otra carta.
  #5 (permalink)  
Antiguo 30/11/2014, 18:43
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Como comparar una respuesta con un elemento de una lista

Tal vez te interese leer sobre listas y/o tuplas primero.
http://mundogeek.net/archivos/2008/0...i-colecciones/
  #6 (permalink)  
Antiguo 01/12/2014, 10:44
Avatar de 12trunks12  
Fecha de Ingreso: noviembre-2014
Mensajes: 41
Antigüedad: 10 años
Puntos: 1
Respuesta: Como comparar una respuesta con un elemento de una lista

Ok muchísimas gracias, ya he conseguido sumar los valores

Etiquetas: elemento, gui, lista, respuesta
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:19.