automatyczny_kelner/agent.py

50 lines
1.4 KiB
Python
Raw Normal View History

2023-05-14 14:23:37 +02:00
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)
2023-05-14 14:23:37 +02:00
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):
2023-05-14 14:23:37 +02:00
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)]
2023-05-14 14:23:37 +02:00
if (random.randint(0, 1)):
objects.append(Block(pos, 0, SQUARE_SIZE, SCREEN_SIZE, store))
2023-05-14 14:23:37 +02:00
else:
objects.append(Table(pos, 0, SQUARE_SIZE, SCREEN_SIZE, store))
2023-05-14 14:23:37 +02:00
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()