(???) rom blocks import CLEAR, blocks, colors
 (???) reate_row = lambda column: [CLEAR for column in range(WIDTH)]
 (???) EIGHT = 20
 (???) IDTH = 10
 (???) lass Bucket:
 (???)    def __init__(self):
 (???)        self.bucket = [create_row(_) for _ in range(HEIGHT)]
 (???)    def draw_tetromino(self, row, column, block, rotation, clear=False):
 (???)        for color in blocks[block][rotation]:
 (???)            (x, y) = (color[0] + column, color[1] + row)
 (???)            self.bucket[y][x] = CLEAR if clear else colors[block]
 (???)    def clear_tetromino(self, row, column, block, rotation):
 (???)        self.draw_tetromino(row, column, block, rotation, True)
 (???)    def test_tetromino(self, row, column, block, rotation):
 (???)        for color in blocks[block][rotation]:
 (???)            (x, y) = (color[0] + column, color[1] + row)
 (???)            if x < 0 or x >= WIDTH or y >= HEIGHT:
 (???)                return False
 (???)            if self.bucket[y][x] != CLEAR:
 (???)                return False
 (???)        return True
 (???)    def clear_lines(self):
 (???)        # remove full lines
 (???)        self.bucket = [row for row in self.bucket if CLEAR in row]
 (???)        lines_cleared = HEIGHT - len(self.bucket)
 (???)        # add rows on top
 (???)        self.bucket = [create_row(row) for row in range(lines_cleared)] + self.bucket
 (???)        return lines_cleared