Estaba elaborando un juego de quimica organica para un trabajo, y se presento la necesidad de darle niveles de dificultad, así que decidí implementar un sistema de vidas. Estuvo funcionando bien en los primeros niveles, pero al llegar a compuestos con más de una respuesta posible, dejaba de funcionar apropiadamente. Antes cada vez que se fallaba restaba una vida y daba la oportunidad de volver a intentar, ahora hace eso para llegar hasta llegar a cero vidas, pero cuando alcanza el cero, no importa lo que se escriba, te permite continuar a la siguiente pregunta. He revisado numerosas veces si es que defini mal las respuestas, pero todo parece en orden. Lo mismo va para la identacion. Este es el codigo:
import random Semi_prefijos_carbonos={1 : "metan", 2 : "etan", 3 : "propan", 4 : "butan", 5:"pentan", 6:"hexan", 7:"heptan", 8:"octan", 9:"nonan", 10:"decan", 11:"undecan", 12:"dodecan"}Cetonas={3 : "propanona", 4 : "butanona", 5:"pentanona", 6:"hexanona", 7:"heptanona", 8:"octanona", 9:"nonanona", 10:"decanona", 11:"undecanona", 12:"dodecanona"} Radicales={1 : "metil", 2 : "etil", 3 : "propil", 4 : "butil", 5:"pentil", 6:"hexil", 7:"heptil", 8:"octil", 9:"nonil", 10:"decil", 11:"undecil", 12:"dodecil"}Niveles_dificultad={"facil" : 3, "normal" : 2, "dificil" : 1}Dificultad=input("Elige el nivel de dificultad, este determinara el numero de vidas (facil, normal, dificil): ")vidas=Niveles_dificultad[Dificultad]Carbonos=random.randint(3, 12)Carbonos_cadena1=1Carbonos_cadena2=Carbonos-2cetonas=[str(Radicales[Carbonos_cadena1]), str(Radicales[Carbonos_cadena2])]cetonas_ordenada=sorted(cetonas, key=str.lower) print("Escribe el nombre de la cetona con una cadena de "+str(Carbonos_cadena1)+" carbono a la izquierda, y otra cadena de "+str(Carbonos_cadena2)+" carbonos a la derecha.")Respuesta=input("Escribes que es: ")while Respuesta != str(cetonas_ordenada[0])+" "+str(cetonas_ordenada[1])+" cetona" and "2-"+str(Cetonas[Carbonos]) and str(Semi_prefijos_carbonos[Carbonos])+"2-ona" and vidas >= 1: vidas = vidas - 1 print("(Respuesta incorrecta, pierdes una vida. Te quedan " + str(vidas) +")") Respuesta=input("Vuelves a intentar diciendo que es: ")if Respuesta==str(cetonas_ordenada[0])+" "+str(cetonas_ordenada[1])+" cetona" or "2-"+str(Cetonas[Carbonos]) or str(Semi_prefijos_carbonos[Carbonos])+"-2-ona": print("Agarras la muestra de "+str(Respuesta)+" y la metes en tu ivnentario.")else: print("Perdiste")