def reset(cls) -> None: """Réinitialise la map""" cls.start_time = time.time() cls.game_finished = False cls.player_infos = {} cls.all_cells = [] cls.ref_time = -1 * cls.DELTA_T_NEW_CELL cls.grid = [[[] for y in range(cls.grid_size.y)] for x in range(cls.grid_size.x)] cls.creatures = {} cls.player_id = cls.generateId() cls.focused_creature_id = cls.player_id player = Player(Vect2d(cls.size.x / 2, cls.size.y / 2), "Player", Color.randomColor(), cls.player_id) cls.creatures[cls.player_id] = [player] # Création du joueur cls.bushes = [] for i in range(config.NB_BUSHES): cls.createBush()
def __init__(self, pos: Vect2d) -> None: """ Constructeur Args: pos (Vect2d): position de la cellule """ self.color = Color.randomColor() # On prend une couleur aléatoire self.pos = pos self.radius = self.BASE_RADIUS self.score = 1
def createEnemy(cls) -> None: """Crée un nouvel ennemi en évitant le spawn-kill, apparition sur une autre créature""" ok = False timed_out = False compt = 0 while not ok and not timed_out: ok = True pos = Vect2d( random.randrange(Creature.BASE_RADIUS * 2, cls.size.x - Creature.BASE_RADIUS * 2), random.randrange(Creature.BASE_RADIUS * 2, cls.size.y - Creature.BASE_RADIUS * 2)) for k in cls.creatures.keys(): creatures_list = cls.creatures[k] for creature in creatures_list: if Vect2d.dist(pos, creature.pos) < (Creature.BASE_RADIUS + creature.radius) * 2: ok = False if compt == 10: timed_out = True compt += 1 if not timed_out: enemy_id = cls.generateId() if cls.all_usernames is None: size = random.randint(3, 5) name = cls.generateNewName(size) else: name = cls.all_usernames[random.randrange( len(cls.all_usernames))] enemy = Enemy(pos, name, Color.randomColor(), enemy_id) cls.creatures[enemy_id] = [enemy]