diff --git a/reborn.py b/reborn.py index 36704ee..dd4d408 100755 --- a/reborn.py +++ b/reborn.py @@ -5,7 +5,7 @@ import math import copy import progressbar -DEBUG = False +DEBUG = True outLines = [] @@ -75,10 +75,12 @@ class Warehouse: class Client: ALL = [] + UNSATISFIED = [] def __init__(self, pos, needs): self.id = len(self.ALL) self.ALL.append(self) + self.UNSATISFIED.append(self) self.pos = pos self.needs = needs @@ -121,7 +123,7 @@ class Client: # Set functions def near(pos): couples = [] - for el in __class__.ALL: + for el in __class__.UNSATISFIED: couples.append([el, distance(el.pos, pos)]) return [couple[0] for couple in sorted(couples, key=lambda c: c[1])] @@ -207,6 +209,7 @@ class Drone: if client.satisfied(): global score score += math.ceil((T-(self.avail+1))/T*100) + Client.UNSATISFIED.remove(client) log("Client", client.id, "satisfied!", "New score:", score) def wait(self, turns=1): @@ -366,9 +369,12 @@ def think(): }) if not roadmap['stops']: - global done done = True - break + if len(Client.UNSATISFIED) == 0: + done = False + break + if done: + break loadOcc = dict((i, roadmap['loads'].count(i)) for i in roadmap['loads']) for i in loadOcc: @@ -396,8 +402,8 @@ try: bar.update(turn) while turn < SIMULATION and [d for d in Drone.ALL if d.tasks]: newTurn() - if not DEBUG: - bar.update(turn) + #if not DEBUG: + # bar.update(turn) if not DEBUG: bar.finish()