toro_vaca.py 2.32 KB
Newer Older
Nelson Ruiz committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63

# para ejecutar
#python3 toro_vaca.py
#hshah@roshka.com
#Funcion para validar el numero ingresado tanto para el jugador A como para el jugador B 
def numero_valido(numero):
    #Verifica que el valor de entrada sea un valor valido

    if(not numero.isdigit()):
        print("Entrada con dato incorrecto")
        return False
    #verifica que el numero sea de 4 cifras 
    elif ((int(numero) < 1000  or int(numero) > 9999)):
        print("El numero debe tener 4 digitos, ingrese de nuevo")
        return False
    #verifica que el numero no tenga valores repetidos
    #el tipo  set es una clase que elimina los elementos repetidos en un cojunto
    else:        
    	if ( not (len(numero)==len(set(numero)))):
            print("El numero no debe tener digitos repetidos, ingrese de nuevo")
            return False
    return True

numero = (input("Ingrese el numero a adivinar: "))
# Verifica si es valido el numero si no lo es se debe volver a introducir el numero
lista=[]
while(not numero_valido(numero)):
    numero = (input("Ingrese el numero a adivinar: "))
    
vacas=0
toros=0
intentos=0
while(intentos<=12):
    intentos=intentos+1#contador de intentos
    #si el intento es mas de 12 gana el jugador A y termina el programa
    if(intentos==13):
        print ("FIN DEL JUEGO - GANÓ A")
        break
    #se ingrese el numero elegido por el jugador B
    print("Intento B ",intentos,": ",end=" ")
    numero_B=input()
    #se valida el numero elegido por el jugador B
    while(not numero_valido(numero_B)):
        numero_B = (input("Ingrese numero del jugador B: "))
    
    #compara los digitos con sus respectivas posiciones para contar la cantidad de toros
    lista.append(numero)
    for i in range(4):
        if(numero[i]==numero_B[i]):
            toros=toros+1
    #compara los digitos de numero y numero_B para contar la cantidad de vacas 
    for i in range(4):
        for j in range(4):
            if (numero[i]==numero_B[j] and numero[j]!=numero_B[j]):
                vacas=vacas+1
    #va imprimiendo los resultados en pantalla
    print("RESPUESTA A: ",toros," TOROS, ", vacas," VACAS")
    #si el numero elegido por B es igual al numero elegido por A antes de pasar los 12 intentos,entonces gana B
    if(numero==numero_B):
        print ("FIN DEL JUEGO - GANÓ B en ",intentos," INTENTOS")
        break
    toros=0
    vacas=0