Esempio n. 1
0
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')
Esempio n. 2
0
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')
Esempio n. 3
0
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()

Esempio n. 4
0
# 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()
Esempio n. 5
0
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)
Esempio n. 6
0
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')
Esempio n. 7
0
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