def problema_papel(self): ''' Probabilidad de problema con el papel de 20% ''' print(f"{self.name}: Tengo un problema con el papel") with self.berlin: reloj(10)
def problema_papel(self): ''' Probabilidad de problema con el papel de 20% ''' with self.berlin: print(f'Berlin solucionando problema de {self.nombre}:') reloj(10) print('Berlin: problema solucionado!')
def problema_picota(self): ''' Probabilida de problema con la picota de 10% Se llama a berlin para resolverlo ''' print(f"{self.name}: Tengo un problema con la picota") with self.berlin: reloj(5)
def problema_papel(self): ''' Probabilidad de problema con el papel de 20% ''' self.berlin.acquire() print('{}: Oh no! Tenemos un problema con el papel!'.format(self.nombre)) print('Berlin solucionando problema de {}'.format(self.nombre)) reloj(10) self.berlin.release()
def run(self): ''' Funcionalidad de Imprimidor que imprime dinero cada 5 minutos, cada iteración chequea si se cumple que hay problema con el dinero (20%) ''' while not self.bolsa_dinero.dinero_listo.is_set(): reloj(5) listo = self.imprimir_dinero(random.randint(100000, 500000)) self.problema_papel()
def problema_picota(self): ''' Probabilida de problema con la picota de 10% Se llama a berlin para resolverlo ''' with self.berlin: print(f'Berlin solucionando problema de {self.nombre}') reloj(5) print('Berlin: Problema solucionado!')
def run(self): ''' Funcionalidad de Excavador que crea x metros de túnel cada 10 min, cada iteración chequea si se cumple que hay problema con la picota (10%) ''' while not self.tunel.tunel_listo.is_set(): reloj(10) self.avanzar(random.randint(50, 100)) self.problema_picota()
def problema_papel(self): ''' Probabilidad de problema con el papel de 20% ''' if random.random() <= 0.20: self.berlin.acquire() print(f"{self.name}: problema con papel!") reloj(10) print(f"{self.name}: problema solucionado!") self.berlin.release()
def problema_picota(self): ''' Probabilida de problema con la picota de 10% Se llama a berlin para resolverlo ''' print('{0}: Oh no! Tenemos un problema con la picota!'.format(self.nombre)) self.berlin.acquire() print('Berlin solucionando problema de {}'.format(self.nombre)) reloj(5) self.berlin.release()
def problema_picota(self): ''' Probabilidad de problema con la picota de 10% Se llama a berlin para resolverlo ''' if random.random() <= 0.10: self.berlin.acquire() print(f"{self.name}: problema con picota!") reloj(5) print(f"{self.name}: problema solucionado!") self.berlin.release()
def run(self): ''' Funcionalidad de iMPRIMIDOR que imprime dinero cada 5 minutos, cada iteracion chequea si se cumple que hay problema con el dinero (20%) ''' while True: dinero = random.randint(100000, 500000) self.imprimir_dinero(dinero) problema = random.uniform(0, 1) if problema <= 0.2: self.problema_papel() reloj(5)
def run(self): ''' Funcionalidad de iMPRIMIDOR que imprime dinero cada 5 minutos, cada iteracion chequea si se cumple que hay problema con el dinero (20%) ''' while self.bolsa_dinero.dinero_acumulado < self.bolsa_dinero.meta_dinero: self.imprimir_dinero(random.randint(100000, 500000)) reloj(10) if random.uniform(0, 1) <= 0.2: self.problema_papel() if self.bolsa_dinero.dinero_acumulado >= self.bolsa_dinero.meta_dinero: self.bolsa_dinero.dinero_listo.set()
def run(self): ''' Funcionalidad de Excavador que crea x metros de tunel cada 10 min, cada iteracion chequea si se cumple que hay problema con la picota (10%) ''' while self.tunel.metros_avanzados < self.tunel.largo: metros = random.randint(50, 100) self.avanzar(metros) problema = random.uniform(0, 1) if problema <= 0.1: self.problema_picota() reloj(10)
def run(self): ''' Funcionalidad de Excavador que crea x metros de tunel cada 10 min, cada iteracion chequea si se cumple que hay problema con la picota (10%) ''' while self.tunel.metros_avanzados < self.tunel.largo: reloj(10) # Metros que avanza el thread self.avanzar(randint(50, 100)) prob_picota = uniform(0, 1) if prob_picota < 0.1: print(f"{self.nombre}: Oh no! Se ha roto la picota") self.problema_picota()
def run(self): ''' Funcionalidad de iMPRIMIDOR que imprime dinero cada 5 minutos, cada iteracion chequea si se cumple que hay problema con el dinero (20%) ''' while True: reloj(10) self.imprimir_dinero(randint(100000, 500000)) prob_papel = uniform(0, 1) if prob_papel < 0.2: print( f"{self.nombre}: Oh no! Ha habido un problema con el papel" ) # Llama al problema de papel self.problema_papel()