import pygame from window import Window from input_manager import InputManager from snake import Snake from game_object import GameObject from wall import Wall def draw_all(window: Window, game_objs: list[GameObject]) -> None: window.reset() for obj in game_objs: window.draw_object(obj) def update_all(game_objs: list[GameObject], user_input: int) -> None: for obj in game_objs: obj.update(user_input, game_objs) def create_game_objects(window): return [Snake(start_position=(400, 300), length=5, radius=10, color=(255, 0, 255)), Wall(window_size=window.get_size(), width=5, color=(255, 0, 0))] if __name__ == '__main__': window = Window(title='Snake', size=(800, 600), background_color=(0, 128, 0)) input_manager = InputManager() game_objs = create_game_objects(window) clock = pygame.time.Clock() framerate = 25 last_input = None while last_input != InputManager.QUIT: last_input = input_manager.process_input() update_all(game_objs, last_input) draw_all(window, game_objs) clock.tick(framerate) pygame.display.flip()