Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Identify Block solution in Uncategorized category for Identify Block by Elena_Korljukova
figures = {(1, 2, 3, 4) : 'I', (2, 6, 9, 10) : 'J', (1, 5, 9, 10) : 'L', (1, 2, 5, 6) : 'O', (2, 3, 5, 6) : 'S', (1, 2, 3 , 6) : 'T', (1, 2, 6, 7) : 'Z'}
def identify_block(numbers):
for i in range(4):
numbers = tuple(sorted([x - 4*min([(y - 1)//4 for y in numbers]) - min([(y - 1)%4 for y in numbers]) for x in numbers])) #offset
if numbers in figures:
return figures[numbers]
numbers = [((x - 1)%4)*4 - (x - 1)//4 + 4 for x in numbers] #rotate
return None
if __name__ == '__main__':
#These "asserts" using only for self-checking and not necessary for auto-testing
assert identify_block({10, 13, 14, 15}) == 'T', 'T'
assert identify_block({1, 5, 9, 6}) == 'T', 'T'
assert identify_block({2, 3, 7, 11}) == 'L', 'L'
assert identify_block({4, 8, 12, 16}) == 'I', 'I'
assert identify_block({3, 1, 5, 8}) == None, 'None'
print('"Run" is good. How is "Check"?')
July 3, 2020