Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
find_objects solution in 3rd party category for Identify Block by rodka81
import numpy as np
from scipy.ndimage import find_objects
SHAPES = {
'I': [[1, 1, 1, 1]],
'T': [[1, 1, 1], [0, 1, 0]],
'J': [[1, 0, 0], [1, 1, 1]],
'L': [[1, 1, 1], [1, 0, 0]],
'O': [[1, 1], [1, 1]],
'S': [[0, 1, 1], [1, 1, 0]],
'Z': [[1, 1, 0], [0, 1, 1]]
}
def identify_block(numbers):
m = np.zeros((4, 4)).astype(int)
for n in numbers:
m[(n-1) // 4][n % 4 - 1] = 1
for r in [np.rot90(m[find_objects(m)[0]], i) for i in range(4)]:
for letter, shape in SHAPES.items():
if np.array_equal(r, shape):
return letter
return None
Sept. 23, 2018
Comments: