added fruit game support

This commit is contained in:
2022-10-31 16:39:07 +01:00
parent 90b7177273
commit ec7bdf6eb1

View File

@@ -20,6 +20,9 @@ class Fruit(GameBase):
self.colors = [GREEN, YELLOW, RED, BLUE, ORANGE]
self.offset_left = 553
self.offset_down = 188
self.fill_data_coordinates()
self.needles = {GREEN: cv.imread("fruit/green.jpg", cv.IMREAD_COLOR),
@@ -30,9 +33,9 @@ class Fruit(GameBase):
}
def fill_data_coordinates(self):
# 540 to 1870 = 1330 / 11 = 121
# 180 to 1030 = 1076 / 8 = 121.4
dim = 121.2
# 553 to 1861 = 1330 / 11 = 119
# 188 to 1022 = 1076 / 7 = 119
dim = 119
for e in range(0, 7, 1):
for i in range(0, 11, 1):
self.data_coordinates[e][i] = [i * dim, e * dim, dim, dim]
@@ -71,16 +74,18 @@ class Fruit(GameBase):
def get_current_board_state(self):
# get an updated image of the game
screenshot = self.capture_window.get_screenshot()
screenshot = screenshot[900:1100, 1100:1450]
#screenshot = screenshot[900:1030, 540:1870]
# screenshot = cv.imread("field_farm.jpg")
# 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_button_and_execute(screenshot, self.ok_button, 900, 1100):
if self.check_for_button_and_execute(screenshot, self.ok_button):
cv.waitKey(500)
screenshot = self.capture_window.get_screenshot()
screenshot = screenshot[180:1030, 540:1870]
screenshot = screenshot[188:1022, 553:1861]
# 553 to 1861 = 1330 / 11 = 119
# 188 to 1022
# cv.imshow("screenshot", screenshot)
# cv.waitKey(150)
# continue
@@ -133,15 +138,13 @@ class Fruit(GameBase):
def check_pairs(self, state, e, i, color):
try:
#
offset_left = 540
offset_down = 180
if state[e, i] == color and state[e + 1, i] == color:
click_pt = self.get_click_point(self.data_coordinates[e, i])
self.dig_point(click_pt[0] + offset_left, click_pt[1] + offset_down, 100)
self.dig_point(click_pt[0] + self.offset_left, click_pt[1] + self.offset_down, 100)
return True
elif state[e, i] == color and state[e, i + 1] == color:
click_pt = self.get_click_point(self.data_coordinates[e, i])
self.dig_point(click_pt[0] + offset_left, click_pt[1] + offset_down, 100)
self.dig_point(click_pt[0] + self.offset_left, click_pt[1] + self.offset_down, 100)
return True
return False
except: