update litris with board detection
This commit is contained in:
29
litris.py
29
litris.py
@@ -27,6 +27,7 @@ class Litris(GameBase):
|
|||||||
self.stone_id_thread = NewStoneID()
|
self.stone_id_thread = NewStoneID()
|
||||||
|
|
||||||
self.move_mode = 1
|
self.move_mode = 1
|
||||||
|
self.moved_around_full = False
|
||||||
|
|
||||||
self.field_state_storage = {
|
self.field_state_storage = {
|
||||||
1: self.field,
|
1: self.field,
|
||||||
@@ -35,14 +36,18 @@ class Litris(GameBase):
|
|||||||
4: self.field
|
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):
|
def assess_playfield_and_make_move(self):
|
||||||
last_letter_received = time()
|
last_letter_received = time()
|
||||||
while True:
|
while True:
|
||||||
if self.stone_id_thread.get_pick_up_status() == False:
|
if self.stone_id_thread.get_pick_up_status() == False:
|
||||||
if (time() - last_letter_received) >= 5:
|
if (time() - last_letter_received) >= 5:
|
||||||
self.field.reset_field()
|
self.reset()
|
||||||
self.field.cleared_rows = 1
|
|
||||||
self.move_mode = 1
|
|
||||||
last_letter_received = time()
|
last_letter_received = time()
|
||||||
self.dig_point(1500, 980, 100)
|
self.dig_point(1500, 980, 100)
|
||||||
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
|
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)
|
self.stone_id_thread.set_pick_up_status(False)
|
||||||
|
|
||||||
def update_field_with_stored_edges(self):
|
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))
|
state_copy = Field.rotate_90_degree_clckwise(copy(self.field_state_storage[1].state))
|
||||||
for i in range(11,20,1):
|
for i in range(11,20,1):
|
||||||
for e in range(0,2,1):
|
for e in range(0,2,1):
|
||||||
self.field.state[i][e] = state_copy[i][e]
|
self.field.state[i][e] = state_copy[i][e]
|
||||||
|
self.moved_around_full = True
|
||||||
|
|
||||||
def drop_down(self):
|
def drop_down(self):
|
||||||
if self.move_mode == 1:
|
if self.move_mode == 1:
|
||||||
|
|||||||
Reference in New Issue
Block a user