added counterreset on explosive stuck

This commit is contained in:
2022-10-15 21:41:31 +02:00
parent d67b2d7947
commit 3b43135383
2 changed files with 14 additions and 6 deletions

View File

@@ -136,8 +136,8 @@ class Field:
if self.reset_counter == 1: if self.reset_counter == 1:
pass pass
elif self.reset_counter == 2: elif self.reset_counter == 2:
self.detonate_explosive_when_stuck(new_observation) if self.detonate_explosive_when_stuck(new_observation):
self.reset_counter = 0 self.reset_counter = 0
return return
elif self.reset_counter >= 3: elif self.reset_counter >= 3:
screenshot = self.capture_window.get_screenshot() screenshot = self.capture_window.get_screenshot()
@@ -267,18 +267,22 @@ class Field:
if self.local_pos_checks(state, e, i, 1, 0, self.colors): if self.local_pos_checks(state, e, i, 1, 0, self.colors):
dest_pt = self.get_click_point(self.data_coordinates[e + 1, i]) dest_pt = self.get_click_point(self.data_coordinates[e + 1, i])
self.move_tile(src_pt, dest_pt) self.move_tile(src_pt, dest_pt)
return True
elif self.local_pos_checks(state, e, i, 0, 1, self.colors): elif self.local_pos_checks(state, e, i, 0, 1, self.colors):
dest_pt = self.get_click_point(self.data_coordinates[e, i + 1]) dest_pt = self.get_click_point(self.data_coordinates[e, i + 1])
self.move_tile(src_pt, dest_pt) self.move_tile(src_pt, dest_pt)
return True
elif self.local_pos_checks(state, e, i, -1, 0, self.colors): elif self.local_pos_checks(state, e, i, -1, 0, self.colors):
dest_pt = self.get_click_point(self.data_coordinates[e - 1, i]) dest_pt = self.get_click_point(self.data_coordinates[e - 1, i])
self.move_tile(src_pt, dest_pt) self.move_tile(src_pt, dest_pt)
return True
elif self.local_pos_checks(state, e, i, 0, -1, self.colors): elif self.local_pos_checks(state, e, i, 0, -1, self.colors):
dest_pt = self.get_click_point(self.data_coordinates[e, i - 1]) dest_pt = self.get_click_point(self.data_coordinates[e, i - 1])
self.move_tile(src_pt, dest_pt) self.move_tile(src_pt, dest_pt)
return True
else: else:
continue continue
return return False
def check_explosives(self, state, e, i): def check_explosives(self, state, e, i):
for explosive in self.explosives: for explosive in self.explosives:

View File

@@ -117,8 +117,8 @@ class Field:
if self.reset_counter == 1: if self.reset_counter == 1:
pass pass
elif self.reset_counter == 2: elif self.reset_counter == 2:
self.detonate_explosive_when_stuck(new_observation) if self.detonate_explosive_when_stuck(new_observation):
self.reset_counter = 0 self.reset_counter = 0
return return
elif self.reset_counter >= 3: elif self.reset_counter >= 3:
screenshot = self.capture_window.get_screenshot() screenshot = self.capture_window.get_screenshot()
@@ -258,18 +258,22 @@ class Field:
if self.local_pos_checks(state, e, i, 1, 0, self.colors): if self.local_pos_checks(state, e, i, 1, 0, self.colors):
src_pt = self.get_click_point(self.data_coordinates[e + 1, i]) src_pt = self.get_click_point(self.data_coordinates[e + 1, i])
self.move_tile(src_pt, dest_pt) self.move_tile(src_pt, dest_pt)
return True
elif self.local_pos_checks(state, e, i, 0, 1, self.colors): elif self.local_pos_checks(state, e, i, 0, 1, self.colors):
src_pt = self.get_click_point(self.data_coordinates[e, i + 1]) src_pt = self.get_click_point(self.data_coordinates[e, i + 1])
self.move_tile(src_pt, dest_pt) self.move_tile(src_pt, dest_pt)
return True
elif self.local_pos_checks(state, e, i, -1, 0, self.colors): elif self.local_pos_checks(state, e, i, -1, 0, self.colors):
src_pt = self.get_click_point(self.data_coordinates[e - 1, i]) src_pt = self.get_click_point(self.data_coordinates[e - 1, i])
self.move_tile(src_pt, dest_pt) self.move_tile(src_pt, dest_pt)
return True
elif self.local_pos_checks(state, e, i, 0, -1, self.colors): elif self.local_pos_checks(state, e, i, 0, -1, self.colors):
src_pt = self.get_click_point(self.data_coordinates[e, i - 1]) src_pt = self.get_click_point(self.data_coordinates[e, i - 1])
self.move_tile(src_pt, dest_pt) self.move_tile(src_pt, dest_pt)
return True
else: else:
continue continue
return return False
def check_explosives(self, state, e, i): def check_explosives(self, state, e, i):
for explosive in self.explosives: for explosive in self.explosives: