Files
project_game/fruit_catcher/manager.py
2026-03-19 13:19:29 -04:00

33 lines
1.0 KiB
Python

from .fruit import Fruit, FRUIT_TYPES
from random import choice, randint
class FruitManager:
display = False
name = "fruit_manager"
def __init__(self):
self.active_fruits = []
self.last_spawn_turn = 0
self.next_z = 0
def play_turn(self, game):
self.active_fruits = [f for f in self.active_fruits if f.alive]
spawn_interval = max(12, 72 - game.turn_number // 10)
if game.turn_number - self.last_spawn_turn >= spawn_interval:
self.create_piece(game)
self.last_spawn_turn = game.turn_number
def create_piece(self, game):
width, _ = game.board_size
fruit_type = choice(FRUIT_TYPES)
shape = fruit_type['shape']
max_ox = max(ox for ox, oy in shape)
x = randint(0, width - 1 - max_ox)
dx = choice([-1, 0, 0, 1])
speed = randint(2, 5)
fruit = Fruit((x, 1), game, shape, fruit_type['color'], dx, speed, self.next_z)
self.next_z += len(shape)
game.add_agent(fruit)
self.active_fruits.append(fruit)