bug fix 5s
This commit is contained in:
50
farm.py
50
farm.py
@@ -157,9 +157,7 @@ class Farm(GameBase):
|
|||||||
for e in range(0, 8, 1):
|
for e in range(0, 8, 1):
|
||||||
for i in range(0, 14, 1):
|
for i in range(0, 14, 1):
|
||||||
for color in self.colors:
|
for color in self.colors:
|
||||||
if self.check_5_horizontal(state, e, i, color):
|
if self.check_5s(state, e, i, color):
|
||||||
return
|
|
||||||
if self.check_5_vertical(state, e, i, color):
|
|
||||||
return
|
return
|
||||||
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
|
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
|
||||||
break
|
break
|
||||||
@@ -210,43 +208,33 @@ class Farm(GameBase):
|
|||||||
continue
|
continue
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def check_5_horizontal(self, state, e, i, color):
|
def check_5s(self, state, e, i, color):
|
||||||
try:
|
try:
|
||||||
#
|
#
|
||||||
if state[e, i] == color and state[e, i + 1] == color and state[e, i + 3] == color and state[
|
if state[e, i] == color and state[e + 1, i] == color and state[e + 3, i] == color and state[e + 4, i] == color:
|
||||||
e, i + 4] == color:
|
if state[e + 2, i] in self.colors:
|
||||||
if state[e, i + 2] <= 0 or state[e, i + 2] >= 6:
|
if self.is_direction_in_bounce_and_same_color(state, (e + 2, i - 1), color):
|
||||||
return False
|
|
||||||
#
|
|
||||||
if e - 1 >= 0 and i + 2 <= 13:
|
|
||||||
if state[e - 1, i + 2] == color:
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
except:
|
|
||||||
return False
|
|
||||||
|
|
||||||
def check_5_vertical(self, state, e, i, color):
|
|
||||||
try:
|
|
||||||
#
|
|
||||||
if state[e, i] == color and state[e + 1, i] == color and state[e + 3, i] == color and state[
|
|
||||||
e + 4, i] == color:
|
|
||||||
if state[e + 2, i] <= 0 or state[e + 2, i] >= 6:
|
|
||||||
return False
|
|
||||||
# third left upper
|
|
||||||
if e + 2 <= 7 and i - 1 >= 0:
|
|
||||||
if state[e + 2, i - 1] == color:
|
|
||||||
# print("upper left", color, e, i)
|
|
||||||
src_pt = self.get_click_point(self.data_coordinates[e + 2, i - 1])
|
src_pt = self.get_click_point(self.data_coordinates[e + 2, i - 1])
|
||||||
dest_pt = self.get_click_point(self.data_coordinates[e + 2, i])
|
dest_pt = self.get_click_point(self.data_coordinates[e + 2, i])
|
||||||
self.move_tile(src_pt, dest_pt)
|
self.move_tile(src_pt, dest_pt)
|
||||||
return True
|
return True
|
||||||
if e + 2 <= 7 and i + 1 <= 13:
|
if self.is_direction_in_bounce_and_same_color(state, (e + 2, i + 1), color):
|
||||||
if state[e + 2, i + 1] == color:
|
|
||||||
# print("upper left", color, e, i)
|
|
||||||
src_pt = self.get_click_point(self.data_coordinates[e + 2, i + 1])
|
src_pt = self.get_click_point(self.data_coordinates[e + 2, i + 1])
|
||||||
dest_pt = self.get_click_point(self.data_coordinates[e + 2, i])
|
dest_pt = self.get_click_point(self.data_coordinates[e + 2, i])
|
||||||
self.move_tile(src_pt, dest_pt)
|
self.move_tile(src_pt, dest_pt)
|
||||||
return True
|
return True
|
||||||
|
elif state[e, i] == color and state[e, i + 1] == color and state[e, i + 3] == color and state[e, i + 4] == color:
|
||||||
|
if state[e, i + 2] in self.colors:
|
||||||
|
if self.is_direction_in_bounce_and_same_color(state, (e + 1, i +2), color):
|
||||||
|
src_pt = self.get_click_point(self.data_coordinates[e + 1, i + 2])
|
||||||
|
dest_pt = self.get_click_point(self.data_coordinates[e, i + 2])
|
||||||
|
self.move_tile(src_pt, dest_pt)
|
||||||
|
return True
|
||||||
|
if self.is_direction_in_bounce_and_same_color(state, (e - 1, i + 2), color):
|
||||||
|
src_pt = self.get_click_point(self.data_coordinates[e - 1, i + 2])
|
||||||
|
dest_pt = self.get_click_point(self.data_coordinates[e, i + 2])
|
||||||
|
self.move_tile(src_pt, dest_pt)
|
||||||
|
return True
|
||||||
return False
|
return False
|
||||||
except:
|
except:
|
||||||
return False
|
return False
|
||||||
@@ -362,7 +350,7 @@ class Farm(GameBase):
|
|||||||
# third left lower
|
# third left lower
|
||||||
if e + 2 <= 7 and i - 1 >= 0:
|
if e + 2 <= 7 and i - 1 >= 0:
|
||||||
if state[e + 2, i - 1] == color and (state[e + 2, i] in self.colors):
|
if state[e + 2, i - 1] == color and (state[e + 2, i] in self.colors):
|
||||||
print("lower left", color, e, i)
|
# print("lower left", color, e, i)
|
||||||
src_pt = self.get_click_point(self.data_coordinates[e + 2, i - 1])
|
src_pt = self.get_click_point(self.data_coordinates[e + 2, i - 1])
|
||||||
dest_pt = self.get_click_point(self.data_coordinates[e + 2, i])
|
dest_pt = self.get_click_point(self.data_coordinates[e + 2, i])
|
||||||
self.move_tile(src_pt, dest_pt)
|
self.move_tile(src_pt, dest_pt)
|
||||||
|
|||||||
Reference in New Issue
Block a user