From cadcfe810396a5f9f43ffbc1864be57c4fb5523d Mon Sep 17 00:00:00 2001 From: Thaloria Date: Sun, 30 Jul 2023 14:28:15 +0200 Subject: [PATCH] update litris with board detection --- litris.py | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/litris.py b/litris.py index 3c0cc7f..1ae068e 100644 --- a/litris.py +++ b/litris.py @@ -27,6 +27,7 @@ class Litris(GameBase): self.stone_id_thread = NewStoneID() self.move_mode = 1 + self.moved_around_full = False self.field_state_storage = { 1: self.field, @@ -35,14 +36,18 @@ class Litris(GameBase): 4: self.field } + def reset(self): + self.field.reset_field() + self.field.cleared_rows = 1 + self.move_mode = 1 + self.moved_around_full = False + def assess_playfield_and_make_move(self): last_letter_received = time() while True: if self.stone_id_thread.get_pick_up_status() == False: if (time() - last_letter_received) >= 5: - self.field.reset_field() - self.field.cleared_rows = 1 - self.move_mode = 1 + self.reset() last_letter_received = time() self.dig_point(1500, 980, 100) if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused': @@ -99,11 +104,27 @@ class Litris(GameBase): self.stone_id_thread.set_pick_up_status(False) def update_field_with_stored_edges(self): - if self.move_mode == 4: + if self.move_mode == 1 and self.moved_around_full: + state_copy = Field.rotate_90_degree_clckwise(copy(self.field_state_storage[2].state)) + for i in range(11,20,1): + for e in range(0,2,1): + self.field.state[i][e] = state_copy[i][e] + elif self.move_mode == 2 and self.moved_around_full: + state_copy = Field.rotate_90_degree_clckwise(copy(self.field_state_storage[3].state)) + for i in range(11,20,1): + for e in range(0,2,1): + self.field.state[i][e] = state_copy[i][e] + elif self.move_mode == 3 and self.moved_around_full: + state_copy = Field.rotate_90_degree_clckwise(copy(self.field_state_storage[4].state)) + for i in range(11, 20, 1): + for e in range(0, 2, 1): + self.field.state[i][e] = state_copy[i][e] + elif self.move_mode == 4: state_copy = Field.rotate_90_degree_clckwise(copy(self.field_state_storage[1].state)) for i in range(11,20,1): for e in range(0,2,1): self.field.state[i][e] = state_copy[i][e] + self.moved_around_full = True def drop_down(self): if self.move_mode == 1: