grid_x_count = 10 grid_y_count = 18 inert = [] for y in range(grid_y_count): inert.append([]) for x in range(grid_x_count): inert[y].append(' ') piece_structures = [ [ [ [' ', ' ', ' ', ' '], ['i', 'i', 'i', 'i'], [' ', ' ', ' ', ' '], [' ', ' ', ' ', ' '], ], [ [' ', 'i', ' ', ' '], [' ', 'i', ' ', ' '], [' ', 'i', ' ', ' '], [' ', 'i', ' ', ' '], ], ], [ [ [' ', ' ', ' ', ' '], [' ', 'o', 'o', ' '], [' ', 'o', 'o', ' '], [' ', ' ', ' ', ' '], ], ], [ [ [' ', ' ', ' ', ' '], ['j', 'j', 'j', ' '], [' ', ' ', 'j', ' '], [' ', ' ', ' ', ' '], ], [ [' ', 'j', ' ', ' '], [' ', 'j', ' ', ' '], ['j', 'j', ' ', ' '], [' ', ' ', ' ', ' '], ], [ ['j', ' ', ' ', ' '], ['j', 'j', 'j', ' '], [' ', ' ', ' ', ' '], [' ', ' ', ' ', ' '], ], [ [' ', 'j', 'j', ' '], [' ', 'j', ' ', ' '], [' ', 'j', ' ', ' '], [' ', ' ', ' ', ' '], ], ], [ [ [' ', ' ', ' ', ' '], ['l', 'l', 'l', ' '], ['l', ' ', ' ', ' '], [' ', ' ', ' ', ' '], ], [ [' ', 'l', ' ', ' '], [' ', 'l', ' ', ' '], [' ', 'l', 'l', ' '], [' ', ' ', ' ', ' '], ], [ [' ', ' ', 'l', ' '], ['l', 'l', 'l', ' '], [' ', ' ', ' ', ' '], [' ', ' ', ' ', ' '], ], [ ['l', 'l', ' ', ' '], [' ', 'l', ' ', ' '], [' ', 'l', ' ', ' '], [' ', ' ', ' ', ' '], ], ], [ [ [' ', ' ', ' ', ' '], ['t', 't', 't', ' '], [' ', 't', ' ', ' '], [' ', ' ', ' ', ' '], ], [ [' ', 't', ' ', ' '], [' ', 't', 't', ' '], [' ', 't', ' ', ' '], [' ', ' ', ' ', ' '], ], [ [' ', 't', ' ', ' '], ['t', 't', 't', ' '], [' ', ' ', ' ', ' '], [' ', ' ', ' ', ' '], ], [ [' ', 't', ' ', ' '], ['t', 't', ' ', ' '], [' ', 't', ' ', ' '], [' ', ' ', ' ', ' '], ], ], [ [ [' ', ' ', ' ', ' '], [' ', 's', 's', ' '], ['s', 's', ' ', ' '], [' ', ' ', ' ', ' '], ], [ ['s', ' ', ' ', ' '], ['s', 's', ' ', ' '], [' ', 's', ' ', ' '], [' ', ' ', ' ', ' '], ], ], [ [ [' ', ' ', ' ', ' '], ['z', 'z', ' ', ' '], [' ', 'z', 'z', ' '], [' ', ' ', ' ', ' '], ], [ [' ', 'z', ' ', ' '], ['z', 'z', ' ', ' '], ['z', ' ', ' ', ' '], [' ', ' ', ' ', ' '], ], ], ] piece_type = 0 piece_rotation = 0 def on_key_down(key): global piece_rotation if key == keys.X: piece_rotation += 1 if piece_rotation > len(piece_structures[piece_type]) - 1: piece_rotation = 0 elif key == keys.Z: piece_rotation -= 1 if piece_rotation < 0: piece_rotation = len(piece_structures[piece_type]) - 1 def draw(): screen.fill((255, 255, 255)) def draw_block(block, x, y): colors = { ' ': (222, 222, 222), 'i': (120, 195, 239), 'j': (236, 231, 108), 'l': (124, 218, 193), 'o': (234, 177, 121), 's': (211, 136, 236), 't': (248, 147, 196), 'z': (169, 221, 118), } color = colors[block] block_size = 20 block_draw_size = block_size - 1 screen.draw.filled_rect( Rect( x * block_size, y * block_size, block_draw_size, block_draw_size ), color=color ) for y in range(grid_y_count): for x in range(grid_x_count): draw_block(inert[y][x], x, y) for y in range(4): for x in range(4): block = piece_structures[piece_type][piece_rotation][y][x] if block != ' ': draw_block(block, x, y)