def thread_queue(cv_queue): # 0 = carro esquerda, 1 = carro direita # 2 = caminhão esquerda, 3 = caminhão direita combinations = [0, 1, 2, 3] cars_right = 0 cars_left = 0 trucks_right = 0 trucks_left = 0 while(True): if(len(combinations) == 0): break # Gera uma combinação de veículo e sentido combination = choice(combinations) if(combination == 0): # Tupla para guardar o veículo e seu tempo de chegada tup = (classes.Car(), time.time()) left.append(tup) cars_left += 1 print('Carro inserido na fila esquerda') if(cars_left == 50): combinations.remove(0) elif(combination == 1): tup = (classes.Car(), time.time()) right.append(tup) cars_right += 1 print('Carro inserido na fila direita') if(cars_right == 50): combinations.remove(1) elif(combination == 2): tup = (classes.Truck(), time.time()) left.append(tup) trucks_left += 1 print('Caminhão inserido na fila esquerda') if(trucks_left == 3): combinations.remove(2) elif(combination == 3): tup = (classes.Truck(), time.time()) right.append(tup) trucks_right += 1 print('Caminhão inserido na fila direita') if(trucks_right == 3): combinations.remove(3) # Notifica todas as threads após inserir um carro em uma das filas with(cv_queue): cv_queue.notify_all() # Gera um tempo de chegada aleatório e espera esse tempo waiting_time = randint(2, 6) time.sleep(waiting_time) print('Thread queue encerrou')
def thread_queue(cv_queue): directions = [0, 1] qt_right = 0 qt_left = 0 while (True): car = classes.Car() # Gera uma direção (0 = esquerda, 1 = direita) aleatoriamente if (len(directions) == 0): break i = randint(0, len(directions) - 1) direction = directions[i] tup = (car, time.time()) if (direction == 1): right.append(tup) qt_right += 1 print('Car inserted on right queue\n') if (qt_right >= (MAX_CARS / 2)): try: directions.remove(1) except ValueError: pass else: left.append(tup) qt_left += 1 print('Car inserted on left queue\n') if (qt_left >= (MAX_CARS / 2)): try: directions.remove(0) except ValueError: pass # Notifica todas as threads após inserir um carro em uma das filas with (cv_queue): cv_queue.notify_all() # Gera um tempo de chegada aleatório waiting_time = randint(2, 6) time.sleep(waiting_time) print('Thread queue encerrou')
import classes as cl print("-------------------------------------------------------------------------") engine1 = cl.Engine("SuperTruper", 123, 1.5, 7) vehicle = cl.Vehicle(100, 3, 10) car1 = cl.Car(100, 10, 123, 3, engine1, 4) car1.star_car() car1.stop_cat() print("-------------------------------------------------------------------------") ic = cl.IntelligentCreature(100, 3, 1) ic.speak() print("-------------------------------------------------------------------------") h1 = cl.Human("Alex", "Svir", 1000000000000) h1.speak() print("-------------------------------------------------------------------------") engine2 = cl.Engine("TransformationRatio", 312, 2.7, 3) tr1 = cl.Transformer(150, 0, 2000, 3000, 2, 2, "00:30", 152, "Aircraft", engine2) tr1.helloandstart() tr1.goodbye()
# import math # print(math.factorial(5)) # from math import factorial # print(factorial(5)) # from math import factorial as f # print(f(5)) # import math as m # print(m.factorial(5)) # from math import * # print(factorial(10)) import classes my_car = classes.Car() my_car.firm = "Lada" classes.main()
import classes # файл с классами # Вызов функций для примера работы программы obj_car = classes.Car() obj_car.move(16) obj_car.refill() print('Остаток топлива в автомобиле:', obj_car.get_fuel(), 'Выручка автомобиля: ', obj_car.profit()) obj_taxi = classes.Taxi() obj_taxi.move(64) print('Выручка такси:', obj_taxi.profit()) obj_bus = classes.Bus() obj_bus.take_places(32) print('Свободные места в автобусе:', obj_bus.get_free_places()) obj_tram = classes.Tram() obj_tram.move(128) obj_tram.take_places(128) print('Выручка трамвая:', obj_tram.profit(), ', Остаток топлива:', round(obj_tram.get_fuel())) obj_airbus = classes.Airbus() obj_airbus.take_places(256) obj_airbus.ultra_speed_mode(16) print('Остаток топлива в самолете:', obj_airbus.get_fuel(), ', Свободные места в самолёте:', obj_airbus.get_free_places(), ', Пройденное самолётом расстояние: ', obj_airbus.get_position()) classes.show_info(obj_car) classes.show_info(obj_taxi) classes.show_info(obj_bus) classes.show_info(obj_tram)
def thread_queue(cv_queue): # 0 = carro esquerda, 1 = carro direita # 2 = caminhão esquerda, 3 = caminhão direita combinations = [0, 1, 2, 3] # Carros que vão para direita cars_right = 0 # Carros que vão para esquerda cars_left = 0 # Caminhões que vão para direita trucks_right = 0 # Caminhões que vão para esquerda trucks_left = 0 while (True): # Se não houverem combinações, a thread é encerrada if (len(combinations) == 0): break # Gera uma combinação de veículo e sentido combination = choice(combinations) # Se a combinação for 0, insere um carro na esquerda if (combination == 0): # Tupla para guardar o veículo e seu tempo de chegada tup = (classes.Car(), time.time()) left.append(tup) cars_left += 1 print('Carro inserido na fila esquerda') # Se o número de carros que foram para a direção esquerda # atingir 50, a combinação 0 é removida if (cars_left == 50): combinations.remove(0) # Se a combinação for 1, insere um carro na direita elif (combination == 1): tup = (classes.Car(), time.time()) right.append(tup) cars_right += 1 print('Carro inserido na fila direita') # Se o número de carros que foram para a direção direita # atingir 50, a combinação 1 é removida if (cars_right == 50): combinations.remove(1) # Se a combinação for 2, insere um caminhão na esquerda elif (combination == 2): tup = (classes.Truck(), time.time()) left.append(tup) trucks_left += 1 print('Caminhão inserido na fila esquerda') # Se o número de caminhões que foram para a direção esquerda # atingir 3, a combinação 2 é removida if (trucks_left == 3): combinations.remove(2) # Se a combinação for 2, insere um caminhão na direita elif (combination == 3): tup = (classes.Truck(), time.time()) right.append(tup) trucks_right += 1 print('Caminhão inserido na fila direita') # Se o número de caminhões que foram para a direção direita # atingir 3, a combinação 3 é removida if (trucks_right == 3): combinations.remove(3) # Notifica todas as threads após inserir um veículo em uma das filas with (cv_queue): cv_queue.notify_all() # Gera um tempo de chegada aleatório e espera esse tempo waiting_time = randint(2, 6) time.sleep(waiting_time) print('Thread queue encerrou')
import classes test = classes.Car() test.moveFwd() print(test.fuel) test.makeSound() test.takePassanger() test2 = classes.Car(10, 2, 43, 50) print(test2.x, test2.y, test2.speed, test2.fuel) test2.__x = 5