From a9e25527f5d4bf9678696a94eb78c2fc5d4e48f6 Mon Sep 17 00:00:00 2001 From: "Thaloria@web.de" Date: Fri, 5 May 2023 19:17:40 +0200 Subject: [PATCH] update farm for 4.0 --- crops.py | 6 +++--- farm.py | 17 ++++++++++------- game_base_class.py | 16 +++++++++------- 3 files changed, 22 insertions(+), 17 deletions(-) diff --git a/crops.py b/crops.py index 1576025..9f85181 100644 --- a/crops.py +++ b/crops.py @@ -142,7 +142,7 @@ class Crops(GameBase): # get an updated image of the game screenshot = self.capture_window.get_screenshot() # screenshot = cv.imread("playfield.jpg") - screenshot = screenshot[58:1134, 230:2113] # 1883,1076 + screenshot = screenshot[190:1230, 260:2090] self.screenshot = screenshot # gray = cv.cvtColor(screenshot, cv.COLOR_BGR2GRAY) # thresh = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV + cv.THRESH_OTSU)[1] @@ -153,11 +153,11 @@ class Crops(GameBase): self.current_strategy = RAINBOW_STRATEGY cv.waitKey(500) screenshot = self.capture_window.get_screenshot() - screenshot = screenshot[58:1134, 230:2113] + screenshot = screenshot[190:1230, 260:2090] if self.check_for_button_and_execute(screenshot, self.next_level_x, offset_left, offset_down): cv.waitKey(500) screenshot = self.capture_window.get_screenshot() - screenshot = screenshot[58:1134, 230:2113] + screenshot = screenshot[190:1230, 260:2090] # cv.imshow("screenshot", screenshot) # cv.waitKey(150) diff --git a/farm.py b/farm.py index 717de80..3a8177c 100644 --- a/farm.py +++ b/farm.py @@ -31,6 +31,8 @@ class Farm(GameBase): def __init__(self, overlay): super().__init__(overlay) + self.farm_reset_board = cv.imread("control_elements/farm_reset_button.jpg", cv.IMREAD_COLOR) + self.colors.append(PINK) self.fill_data_coordinates() @@ -78,7 +80,7 @@ class Farm(GameBase): return elif self.reset_counter >= 3: screenshot = self.capture_window.get_screenshot() - if self.check_for_button_and_execute(screenshot, self.reset_board): + if self.check_for_button_and_execute(screenshot, self.farm_reset_board): cv.waitKey(500) screenshot = self.capture_window.get_screenshot() if self.check_for_button_and_execute(screenshot, self.reset_confirm): @@ -97,21 +99,22 @@ class Farm(GameBase): # get an updated image of the game screenshot = self.capture_window.get_screenshot() # screenshot = cv.imread("field_farm.jpg") - screenshot = screenshot[58:1134, 230:2113] # 1883,1076 + screenshot = screenshot[190:1230, 260:2090] # 1883,1076 # gray = cv.cvtColor(screenshot, cv.COLOR_BGR2GRAY) # thresh = cv.threshold(gray, 0, 255, cv.THRESH_BINARY_INV + cv.THRESH_OTSU)[1] if self.check_for_next_level(screenshot, self.next_level): cv.waitKey(500) screenshot = self.capture_window.get_screenshot() - screenshot = screenshot[58:1134, 230:2113] + screenshot = screenshot[190:1230, 260:2090] if self.check_for_next_level(screenshot, self.next_level_x): cv.waitKey(500) screenshot = self.capture_window.get_screenshot() - screenshot = screenshot[58:1134, 230:2113] + screenshot = screenshot[190:1230, 260:2090] - # cv.imshow("screenshot", screenshot) - # cv.waitKey(150) - # continue + #cv.imshow("screenshot", screenshot) + #cv.waitKey(150) + #return + #continue data_coords = np.zeros((8, 14), dtype=object) # field = Field() for needle_key in self.needles.keys(): diff --git a/game_base_class.py b/game_base_class.py index 4e904cb..9d57468 100644 --- a/game_base_class.py +++ b/game_base_class.py @@ -104,10 +104,12 @@ class GameBase: def assess_playfield_and_make_move(self): pass + #screenshot = screenshot[190:1230, 260:2090] + #[58: 1134, 230: 2113] def fill_data_coordinates(self): - # 230 to 2110 = 1883 / 14 = 134.5 - # 60 to 1130 = 1076 / 8 = 134.5 - dim = 134.5 + # 260 to 2090 = 1883 / 14 = 130 + # 190 to 1230 = 1076 / 8 = 130 + dim = 130 for e in range(0, 8, 1): for i in range(0, 14, 1): self.data_coordinates[e][i] = [i * dim, e * dim, dim, dim] @@ -121,8 +123,8 @@ class GameBase: return True def check_for_next_level(self, screen, needle): - offset_left = 230 - offset_down = 58 + offset_left = 260 + offset_down = 190 rectangles = self.vision_stun.find(screen, needle, 0.70, 1) if len(rectangles) == 0: return False @@ -218,8 +220,8 @@ class GameBase: return int(center_x), int(center_y) def move_tile(self, point_source, point_dest): - offset_left = 230 - offset_down = 58 + offset_left = 260 + offset_down = 190 pydirectinput.moveTo(point_source[0] + offset_left, point_source[1] + offset_down) # pydirectinput.moveTo(0,0) pydirectinput.mouseDown()