''' Tetris 101: https://strategywiki.org/wiki/Tetris/Getting_Started ''' import pygame from entity.Piece import Piece from util.ConfigurationManager import ConfigurationManager def draw(screen, objects): # draw window bg bg_color = pygame.Color(ConfigurationManager.configuration["window"]["bg-color"]) screen.fill(bg_color) # draw all game objects for object in objects: object.draw(screen) # update display pygame.display.update() def main(): ConfigurationManager.load() pygame.init() win_width = ConfigurationManager.configuration["window"]["width"] win_height = ConfigurationManager.configuration["window"]["height"] win_icon = ConfigurationManager.configuration["window"]["icon"] win_title = ConfigurationManager.configuration["window"]["title"] fps = ConfigurationManager.configuration["engine"]["fps"] base_one_color = ConfigurationManager.configuration["color"]["base-1"] base_two_color = ConfigurationManager.configuration["color"]["base-2"] tile_size = ConfigurationManager.configuration["engine"]["tile-size"] screen = pygame.display.set_mode((win_width, win_height)) clock = pygame.time.Clock() loaded_icon = pygame.image.load(win_icon) pygame.display.set_caption(win_title) pygame.display.set_icon(loaded_icon) i_piece = Piece(Piece.I_SHAPE, (100, 100), base_one_color) j_piece = Piece(Piece.J_SHAPE, (250, 100), base_two_color) is_running = True while is_running: clock.tick(fps) for event in pygame.event.get(): if event.type == pygame.QUIT: is_running = False if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: i_piece.rotate() j_piece.rotate() if event.key == pygame.K_LEFT: i_piece.move((-tile_size, 0)) j_piece.move((-tile_size, 0)) if event.key == pygame.K_RIGHT: i_piece.move((tile_size, 0)) j_piece.move((tile_size, 0)) if event.key == pygame.K_UP: i_piece.move((0, -tile_size)) j_piece.move((0, -tile_size)) if event.key == pygame.K_DOWN: i_piece.move((0, tile_size)) j_piece.move((0, tile_size)) draw(screen, [i_piece, j_piece]) pygame.quit() # start main function main()