From 893a0c8c5a1776629f54f595a148cee31efd86cd Mon Sep 17 00:00:00 2001 From: Mateusz Date: Fri, 26 May 2023 20:14:13 +0200 Subject: [PATCH] bug fixes --- garbage_truck.py | 8 +++----- main.py | 3 ++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/garbage_truck.py b/garbage_truck.py index af0e228..2528f48 100644 --- a/garbage_truck.py +++ b/garbage_truck.py @@ -43,8 +43,6 @@ class GarbageTruck: self.rect.y -= FIELDWIDTH def next_destination(self): - if self.fuel <= 0 or not self.request_list: - return self.dump_x, self.dump_y for i in range(len(self.request_list)): request = self.request_list[i] @@ -54,12 +52,12 @@ class GarbageTruck: continue #nie straczy paliwa na dojechanie i powrót na wysypisko - if heuristicfn(request.x_pos, request.y_pos, self.dump_x, self.dump_y) / 50 * 200 > self.fuel: + if heuristicfn(request.x_pos, request.y_pos, self.dump_x, self.dump_y) // 50 * 200 > self.fuel: continue - distance = heuristicfn(self.rect.x, self.rect.y, request.x_pos, request.y_pos) / 50 + distance = heuristicfn(self.rect.x, self.rect.y, request.x_pos, request.y_pos) // 50 r = [ self.fuel, @@ -82,7 +80,7 @@ class GarbageTruck: def collect(self): if self.rect.x == self.dump_x and self.rect.y == self.dump_y: - self.fuel = MAX_WEIGHT + self.fuel = MAX_FUEL self.free_space = MAX_SPACE self.weight_capacity = MAX_WEIGHT print(f'agent at ({self.rect.x}, {self.rect.y}); fuel: {self.fuel}; free space: {self.free_space}; weight capacity: {self.weight_capacity}') diff --git a/main.py b/main.py index e37f883..b31fffe 100644 --- a/main.py +++ b/main.py @@ -49,7 +49,7 @@ def main(): if x == agent.rect.x and y == agent.rect.y: print('out of jobs') break - steps = astar(State(None, None, agent.rect.x, agent.rect.y, agent.orientation, priority_array[0][0], heuristicfn(agent.rect.x, agent.rect.y, x, y)), x, y, priority_array) + steps = astar(State(None, None, agent.rect.x, agent.rect.y, agent.orientation, priority_array[agent.rect.x//50][agent.rect.y//50], heuristicfn(agent.rect.x, agent.rect.y, x, y)), x, y, priority_array) for interm in steps: if interm.action == 'LEFT': agent.turn_left() @@ -68,6 +68,7 @@ def main(): time.sleep(0.3) agent.collect() fields[agent.rect.x//50][agent.rect.y//50] = GRASS + priority_array[agent.rect.x//50][agent.rect.y//50] = 1 time.sleep(0.5)