import random


def generate_random_mob_list(mob_list, max_mobs):
    """
    Génère une liste aléatoire de mobs à partir de la liste fournie.

    :param mob_list:    Liste de mob a choisir aleatoirement.
    :param max_mobs:    Le nombre maximum de mobs dans la liste générée.
    :return:            Une liste de mobs sélectionnés aléatoirement.
    """
    if max_mobs <= 0:
        return []

    num_mobs = random.randint(2, max_mobs)
    selected_mobs = [random.choice(mob_list) for _ in range(num_mobs)]
    return selected_mobs


def generate_random_rooms(mobs_in_level, num_rooms):
    """
    Génère un nombre spécifié de pièces et y distribue les mobs disponibles.

    :param mobs_in_level:   Liste des mobs disponibles pour le niveau.
    :param num_rooms:       Nombre total de pièces à générer.
    :return:                Une liste de pièces, chaque pièce contenant un ou plusieurs mobs, ou étant vide si aucun mob n'est disponible.
    """
    rooms = []

    for _ in range(num_rooms):
        if len(mobs_in_level) > 0:
            # Si des mobs sont disponibles, ajouter le premier mob à la pièce
            new_room = []
            for x in range(random.randint(1, len(mobs_in_level))):
                new_room.append(mobs_in_level.pop(0))
            rooms.append(new_room)
        else:
            # Ajouter une pièce vide si aucun mob n'est disponible
            rooms.append(None)

    return rooms
