import random from termcolor import colored from src.Engine import Engine from src.obj.Waiter import Waiter from src.obj.Block import Block from src.obj.Kitchen import Kitchen from src.obj.Table import Table from src.controller.UserController import UserController from src.controller.StateController import StateController from src.controller.ImageController import ImageController from Network.Predictor import Predictor print(colored("Initialization...", "green")) SCREEN_SIZE = [800, 800] SQUARE_SIZE = 80 SLEEP_DURATION = 0.125 store = ImageController(SQUARE_SIZE) waiter = Waiter([0, 0], 0, SQUARE_SIZE, SCREEN_SIZE, store) kitchen = Kitchen([0, 0], 0, SQUARE_SIZE, SCREEN_SIZE, store) objects = [] for i in range(25): pos = [0, 0] while any([o.compare_pos(pos) for o in objects]) or pos == [0, 0]: pos = [random.randint(1, SCREEN_SIZE[0]/SQUARE_SIZE - 1), random.randint(1, SCREEN_SIZE[0]/SQUARE_SIZE - 1)] if (random.randint(0, 1)): objects.append(Block(pos, 0, SQUARE_SIZE, SCREEN_SIZE, store)) else: objects.append(Table(pos, 0, SQUARE_SIZE, SCREEN_SIZE, store)) user = UserController(waiter) state = StateController(waiter) predictor = Predictor() engine = Engine(SCREEN_SIZE, SQUARE_SIZE, kitchen, user, state, predictor, SLEEP_DURATION) for o in objects: engine.subscribe(o) print(colored("Starting model...", "green")) engine.loop()