update farm for 4.0

This commit is contained in:
Thaloria@web.de
2023-05-05 19:17:40 +02:00
parent c7deaaf6c7
commit a9e25527f5
3 changed files with 22 additions and 17 deletions

View File

@@ -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)

11
farm.py
View File

@@ -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,20 +99,21 @@ 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)
#return
#continue
data_coords = np.zeros((8, 14), dtype=object)
# field = Field()

View File

@@ -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()