update litris with board detection
This commit is contained in:
22
litris.py
22
litris.py
@@ -1,3 +1,5 @@
|
||||
from copy import copy
|
||||
|
||||
import cv2 as cv
|
||||
import numpy as np
|
||||
from time import time
|
||||
@@ -26,6 +28,13 @@ class Litris(GameBase):
|
||||
|
||||
self.move_mode = 1
|
||||
|
||||
self.field_state_storage = {
|
||||
1: self.field,
|
||||
2: self.field,
|
||||
3: self.field,
|
||||
4: self.field
|
||||
}
|
||||
|
||||
def assess_playfield_and_make_move(self):
|
||||
last_letter_received = time()
|
||||
while True:
|
||||
@@ -33,6 +42,7 @@ class Litris(GameBase):
|
||||
if (time() - last_letter_received) >= 5:
|
||||
self.field.reset_field()
|
||||
self.field.cleared_rows = 1
|
||||
self.move_mode = 1
|
||||
last_letter_received = time()
|
||||
self.dig_point(1500, 980, 100)
|
||||
if self.overlay.run_mode == 'stopped' or self.overlay.run_mode == 'paused':
|
||||
@@ -72,12 +82,13 @@ class Litris(GameBase):
|
||||
print(self.field)
|
||||
if self.field.get_line_count() >= 6 and self.field.height() <= 2 and self.field.check_crucial_pos_to_be_free():
|
||||
if self.field.predict_gaps_in_next_rotation() <= 3:
|
||||
self.field_state_storage[self.move_mode] = self.field
|
||||
self.update_move_mode()
|
||||
|
||||
#self.field.state = self.stone_id_thread.get_current_board_state()
|
||||
self.field.rotate_state()
|
||||
#self.update_move_mode()
|
||||
self.field.reset_half_field()
|
||||
self.update_field_with_stored_edges()
|
||||
#field_mem = copy(self.field)
|
||||
#self.field = copy(self.field_mem)
|
||||
#self.field_mem = copy(field_mem)
|
||||
@@ -87,8 +98,13 @@ class Litris(GameBase):
|
||||
cv.waitKey(200)
|
||||
self.stone_id_thread.set_pick_up_status(False)
|
||||
|
||||
|
||||
|
||||
def update_field_with_stored_edges(self):
|
||||
if self.move_mode == 4:
|
||||
state_copy = copy(self.field_state_storage[1])
|
||||
state_copy = state_copy.rotate_90_degree_clckwise()
|
||||
for i in range(11,20,1):
|
||||
for e in range(0,2,1):
|
||||
self.field.state[i][e] = state_copy[i][e]
|
||||
|
||||
def drop_down(self):
|
||||
if self.move_mode == 1:
|
||||
|
||||
Reference in New Issue
Block a user