added sorting -> cut orders and orders to fill
This commit is contained in:
parent
868ba1bfd7
commit
530b221763
53
GameModel.py
53
GameModel.py
@ -224,6 +224,10 @@ class GameModel(Model):
|
|||||||
# print("ORDER {}, PRIO: {}".format(new_orders[i].id, new_orders[i].priority))
|
# print("ORDER {}, PRIO: {}".format(new_orders[i].id, new_orders[i].priority))
|
||||||
|
|
||||||
self.orderList = new_orders
|
self.orderList = new_orders
|
||||||
|
self.count_recognised_items()
|
||||||
|
|
||||||
|
self.sort_orders()
|
||||||
|
|
||||||
self.forklift_agent.orderList = self.orderList
|
self.forklift_agent.orderList = self.orderList
|
||||||
|
|
||||||
print("FINISHED CLIENT ORDER SORTING")
|
print("FINISHED CLIENT ORDER SORTING")
|
||||||
@ -234,6 +238,55 @@ class GameModel(Model):
|
|||||||
pass
|
pass
|
||||||
# print("Execution")
|
# print("Execution")
|
||||||
|
|
||||||
|
def sort_orders(self):
|
||||||
|
orders_to_fill: [Order] = []
|
||||||
|
cut_orders: [Order] = []
|
||||||
|
|
||||||
|
for i in range(len(self.orderList)):
|
||||||
|
o: Order = self.orderList[i]
|
||||||
|
refrige = self.count_item_type(o, ItemType.REFRIGERATOR)
|
||||||
|
shelf = self.count_item_type(o, ItemType.SHELF)
|
||||||
|
door = self.count_item_type(o, ItemType.DOOR)
|
||||||
|
|
||||||
|
if self.count_shelf - shelf >= 0 and self.count_refrige - refrige >= 0 and self.count_door - door >= 0:
|
||||||
|
self.count_shelf -= shelf
|
||||||
|
self.count_door -= door
|
||||||
|
self.count_refrige -= refrige
|
||||||
|
orders_to_fill.append(o)
|
||||||
|
else:
|
||||||
|
cut_orders.append(o)
|
||||||
|
|
||||||
|
self.cut_orders = cut_orders
|
||||||
|
self.orderList = orders_to_fill
|
||||||
|
self.forklift_agent.orderList = orders_to_fill
|
||||||
|
|
||||||
|
def count_item_type(self, o: Order, itemType: ItemType) -> int:
|
||||||
|
res = 0
|
||||||
|
for i in range(len(o.items)):
|
||||||
|
it: Item = o.items[i]
|
||||||
|
if it.guessed_type == itemType:
|
||||||
|
res += 1
|
||||||
|
|
||||||
|
return res
|
||||||
|
|
||||||
|
def count_recognised_items(self):
|
||||||
|
count_refrige: int = 0
|
||||||
|
count_door: int = 0
|
||||||
|
count_shelf: int = 0
|
||||||
|
|
||||||
|
for i in range(len(self.recognised_items)):
|
||||||
|
item: Item = self.recognised_items[i]
|
||||||
|
if item.guessed_type == ItemType.DOOR:
|
||||||
|
count_door += 1
|
||||||
|
elif item.guessed_type == ItemType.SHELF:
|
||||||
|
count_shelf += 1
|
||||||
|
else:
|
||||||
|
count_refrige += 1
|
||||||
|
|
||||||
|
self.count_door = count_door
|
||||||
|
self.count_shelf = count_shelf
|
||||||
|
self.count_refrige = count_refrige
|
||||||
|
|
||||||
def recognise_item(self, item: Item):
|
def recognise_item(self, item: Item):
|
||||||
val = image_classification(self.picture_visualization.img, self.classificator)
|
val = image_classification(self.picture_visualization.img, self.classificator)
|
||||||
print("VAL: {}".format(val))
|
print("VAL: {}".format(val))
|
||||||
|
Loading…
Reference in New Issue
Block a user