import pygame as pygame from Code import Config from Code.Config import GeneralConfig, Colors from Code.GameLogic.Rules import Rules from Code.UI import Square from Code.UI.Field import Field class GameState: def __init__(self): self.run = True self.pause_for_inpuit=False self.field = Field() def event_handler(self): for event in pygame.event.get(): if event.type == pygame.QUIT: self.run = False if event.type == pygame.MOUSEBUTTONDOWN: self._update_field(event) if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: self.pause_for_inpuit=not self.pause_for_inpuit def _update_field(self, event): rule = Rules() for line in self.field.squares: for square in line: if square.rect.collidepoint(event.pos): rule.get_neighborhood(square, field_of_squares=self.field.squares) square.update(not square.active) def update(self): pass def redraw_field(self, window): window.fill(Colors.BLACK) self.field.draw_squares(window) def run_game(): pygame.init() pygame.display.set_caption(GeneralConfig.window_caption) window = pygame.display.set_mode((GeneralConfig.width, GeneralConfig.height)) clock = pygame.time.Clock() game_state = GameState() while game_state.run: clock.tick(GeneralConfig.fps) game_state.event_handler() if game_state.pause_for_inpuit: game_state.update() game_state.redraw_field(window) pygame.display.update() if __name__ == "__main__": run_game()