def game_loop() -> None: game_over = False game_close = False while not game_close: while game_over and not game_close: surface.fill(BLACK) show_you_lost_screen() pygame.display.update() for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True game_close = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_q: game_close = True game_over = True if event.key == pygame.K_c: game_over = False snake = Snake(WIDTH, HEIGHT, snake_size) food = Food(WIDTH, HEIGHT, snake_size) score = 0 while not game_over: for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True game_close = True if event.type == pygame.KEYDOWN: snake.head_direction = event.key if snake.eat(food): food.generate(WIDTH, HEIGHT, snake_size) score += 1 snake.move() if snake.died(WIDTH, HEIGHT): game_over = True surface.fill(BLACK) draw_snake(snake) draw_food(food) show_score(score) pygame.display.update() clock.tick(snake_speed)
class Ground(): def __init__(self, x, y): self.x = x self.y = y self.base_object = {} self.food_on_map = Food() self.material_on_map = Material() self.symbol = "X" def build_construction(self, building_class, fraction): #budowanie """Buduje budynek, dodaje jego symbol i wartość do słownika i zwraca ten słownik.""" self.building = building_class self.building.build(fraction) #zbudowanie budynku self.building_dict = {} self.building = self.building.add_building( fraction) #dodanie do słownika danych budynku return self.building def update_object_new( self): #zaktualizowanie słownika na obszarze przy rysowaniu mapy """Metoda aktualizująca słownik pola o losowe wartości jedzenia i materiałów.""" self.base_object.update(self.food_on_map.generate()) self.base_object.update(self.material_on_map.generate()) def update_object( self, obj): #aktualizowanie oobszaru na mapie np. przy budowaniu """Metoda aktualizująca słownik o zadaną wartość.""" self.base_object.update(obj)