def get_horario(): """Metodo principal para obtener el resultado del ejercicio, el horario""" # Para obtener informacion de los maleantes, lo primero es atrapar un chivato y obtener su informacion. global info info = Chivato.localizar_chivatos(lista_total_chivatos, cazarecompensas) obtener_informacion_1() Logger.log('Informacion obtenida: ' + str(info)) # Mientras no tengamos informacion, consultamos al siguiente chivato while ((ClassUtils.isEmpty(cazarecompensas.list_info) == True) and (ClassUtils.isEmpty(info) == False)): obtener_informacion_1() Logger.log('Informacion obtenida: ' + str(info)) # Recorrer los maleantes con la informacion obtenida, mientras exista informacion y haya tiempo while (ClassUtils.isEmpty(cazarecompensas.list_info) == False and (getTime() > 0)): # Buscamos al Maleante mas cercano, de la lista de informacion villano = ClassUtils.getCercanoMaleante(cazarecompensas.list_info, cazarecompensas) Logger.log("Villano mas cercano: " + str(villano.nombre)) # Si no se puede atrapar, salimos de la iteracion y obtenemos el informe final seguir = atrapar_maleante(villano) if (seguir == False): return # Si la lista con informacion del Cazarecompensas esta vacia, buscamos a otro chivato. if (ClassUtils.isEmpty(cazarecompensas.list_info) and (not ClassUtils.isEmpty(lista_total_maleantes))): obtener_informacion_1() Logger.log("Generar informe final") generarInforme()
def obtener_informacion_1(): """ Obtenemos la informacion necesaria de los chivatos, los cuales nos daran los datos de los maleantes que ellos conozcan.""" if (ClassUtils.isEmpty(info)): return False else: # Obtenemos el Chivato mas cercano chivato_cercano = ClassUtils.getCercano(info) if (chivato_cercano == None): return False Logger.log("El chivato mas cercano es: " + str(chivato_cercano)) # Eliminamos el chivato de la lista total de Chivatos. del info[chivato_cercano] boolean_info = obtener_informacion_2(chivato_cercano) if (boolean_info == False): obtener_informacion_1() else: return True