diff --git a/crop/Field_Representation_crop.py b/crop/Field_Representation_crop.py index 948900b..2f2f810 100644 --- a/crop/Field_Representation_crop.py +++ b/crop/Field_Representation_crop.py @@ -136,8 +136,8 @@ class Field: if self.reset_counter == 1: pass elif self.reset_counter == 2: - self.detonate_explosive_when_stuck(new_observation) - self.reset_counter = 0 + if self.detonate_explosive_when_stuck(new_observation): + self.reset_counter = 0 return elif self.reset_counter >= 3: screenshot = self.capture_window.get_screenshot() @@ -267,18 +267,22 @@ class Field: if self.local_pos_checks(state, e, i, 1, 0, self.colors): dest_pt = self.get_click_point(self.data_coordinates[e + 1, i]) self.move_tile(src_pt, dest_pt) + return True elif self.local_pos_checks(state, e, i, 0, 1, self.colors): dest_pt = self.get_click_point(self.data_coordinates[e, i + 1]) self.move_tile(src_pt, dest_pt) + return True elif self.local_pos_checks(state, e, i, -1, 0, self.colors): dest_pt = self.get_click_point(self.data_coordinates[e - 1, i]) self.move_tile(src_pt, dest_pt) + return True elif self.local_pos_checks(state, e, i, 0, -1, self.colors): dest_pt = self.get_click_point(self.data_coordinates[e, i - 1]) self.move_tile(src_pt, dest_pt) + return True else: continue - return + return False def check_explosives(self, state, e, i): for explosive in self.explosives: diff --git a/farm/Field_Representation.py b/farm/Field_Representation.py index 9e253fe..b5cb801 100644 --- a/farm/Field_Representation.py +++ b/farm/Field_Representation.py @@ -117,8 +117,8 @@ class Field: if self.reset_counter == 1: pass elif self.reset_counter == 2: - self.detonate_explosive_when_stuck(new_observation) - self.reset_counter = 0 + if self.detonate_explosive_when_stuck(new_observation): + self.reset_counter = 0 return elif self.reset_counter >= 3: screenshot = self.capture_window.get_screenshot() @@ -258,18 +258,22 @@ class Field: if self.local_pos_checks(state, e, i, 1, 0, self.colors): src_pt = self.get_click_point(self.data_coordinates[e + 1, i]) self.move_tile(src_pt, dest_pt) + return True elif self.local_pos_checks(state, e, i, 0, 1, self.colors): src_pt = self.get_click_point(self.data_coordinates[e, i + 1]) self.move_tile(src_pt, dest_pt) + return True elif self.local_pos_checks(state, e, i, -1, 0, self.colors): src_pt = self.get_click_point(self.data_coordinates[e - 1, i]) self.move_tile(src_pt, dest_pt) + return True elif self.local_pos_checks(state, e, i, 0, -1, self.colors): src_pt = self.get_click_point(self.data_coordinates[e, i - 1]) self.move_tile(src_pt, dest_pt) + return True else: continue - return + return False def check_explosives(self, state, e, i): for explosive in self.explosives: