litris fixes
This commit is contained in:
32
litris.py
32
litris.py
@@ -101,6 +101,10 @@ class Litris(GameBase):
|
||||
# 2: cv.imread("sodoku/2.jpg", cv.IMREAD_COLOR),
|
||||
}
|
||||
|
||||
def reset_field(self):
|
||||
self.state = [[' ' for cols in range(Field.WIDTH)]
|
||||
for rows in range(Field.HEIGHT)]
|
||||
|
||||
def fill_data_coordinates(self):
|
||||
# 610 to 1950 = 1340 - 76 / 20 = 63
|
||||
# 40 to 1380 = 1340 - 76 / 20 = 63
|
||||
@@ -133,7 +137,10 @@ class Litris(GameBase):
|
||||
#ier = 0
|
||||
|
||||
current_stone = self.new_stone_detection_and_identification()
|
||||
current_tetromino = Tetromino.create(self.get_letter_for_stone(current_stone))
|
||||
current_letter = self.get_letter_for_stone(current_stone)
|
||||
if current_letter is None:
|
||||
return
|
||||
current_tetromino = Tetromino.create(current_letter)
|
||||
opt = Optimizer.get_optimal_drop(self.field, current_tetromino)
|
||||
rotation = opt['tetromino_rotation']
|
||||
column = opt['tetromino_column']
|
||||
@@ -141,6 +148,7 @@ class Litris(GameBase):
|
||||
offset_col = current_tetromino.get_offset_column(rotation)
|
||||
self.field.drop(current_tetromino, column)
|
||||
self.move_stone(column - offset_col, rotation)
|
||||
print(self.field)
|
||||
|
||||
#time.sleep(0.2)
|
||||
#self.observation = new_observation
|
||||
@@ -199,6 +207,8 @@ class Litris(GameBase):
|
||||
rectangles = self.vision_stun.find(screenshot, self.needles[1], 0.85, 16)
|
||||
if len(rectangles) == 0:
|
||||
cv.waitKey(100)
|
||||
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
|
||||
return
|
||||
continue
|
||||
points = self.vision_stun.get_click_points(rectangles)
|
||||
|
||||
@@ -238,6 +248,8 @@ class Litris(GameBase):
|
||||
return "Z"
|
||||
elif np.array_equal(stone, T1_FULL):
|
||||
return "T"
|
||||
else:
|
||||
return None
|
||||
|
||||
|
||||
def find_place_for_stone(self, stone, current_board):
|
||||
@@ -337,17 +349,23 @@ class Litris(GameBase):
|
||||
cv.waitKey(250)
|
||||
|
||||
if rotation == 1:
|
||||
self.keyboard.press('e')
|
||||
self.keyboard.release('e')
|
||||
self.keyboard.press('q')
|
||||
self.keyboard.release('q')
|
||||
elif rotation == 2:
|
||||
self.keyboard.press('e')
|
||||
self.keyboard.release('e')
|
||||
self.keyboard.press('q')
|
||||
self.keyboard.release('q')
|
||||
cv.waitKey(40)
|
||||
self.keyboard.press('e')
|
||||
self.keyboard.release('e')
|
||||
self.keyboard.press('q')
|
||||
self.keyboard.release('q')
|
||||
elif rotation == 3:
|
||||
self.keyboard.press('q')
|
||||
self.keyboard.release('q')
|
||||
cv.waitKey(40)
|
||||
self.keyboard.press('q')
|
||||
self.keyboard.release('q')
|
||||
cv.waitKey(40)
|
||||
self.keyboard.press('q')
|
||||
self.keyboard.release('q')
|
||||
|
||||
if col_movement < 0:
|
||||
for i in range(0, col_movement, - 1):
|
||||
|
||||
Reference in New Issue
Block a user