"""
群体智能插件完整示例
演示各种群体行为和配置选项
"""

def basic_example():
    """
    基础使用示例
    """
    print("=== 群体智能插件基础示例 ===")
    print("1. 启用插件后，将自动创建一个包含20个成员的群体")
    print("2. 群体成员会根据Boids算法进行移动")
    print("3. 按F1键可以暂停/继续群体模拟")
    print("4. 通过控制面板可以调节群体行为参数")
    print()

def advanced_example():
    """
    高级使用示例
    """
    print("=== 群体智能插件高级示例 ===")
    print("1. 可以通过配置文件自定义群体参数")
    print("2. 支持动态添加/删除群体成员")
    print("3. 可以与场景中的其他对象进行交互")
    print("4. 支持自定义群体行为规则")
    print()

def scenario_examples():
    """
    场景示例说明
    """
    print("=== 场景示例 ===")
    print("1. 鸟类群体：模拟鸟类飞行行为")
    print("2. 鱼群：模拟水下鱼群行为")
    print("3. 昆虫群体：模拟昆虫飞行行为")
    print("4. V字形队形：模拟候鸟迁徙队形")
    print("5. 圆形队形：模拟环形群体行为")
    print("6. 路径跟随：群体沿着预设路径移动")
    print("7. 捕猎场景：群体躲避捕食者")
    print("8. 避障场景：群体避开障碍物")
    print()

def configuration_examples():
    """
    配置示例说明
    """
    print("=== 配置示例 ===")
    print("1. cohesion_weight: 聚集权重，控制群体成员向中心聚集的趋势")
    print("2. separation_weight: 分离权重，控制群体成员避免碰撞的趋势")
    print("3. alignment_weight: 对齐权重，控制群体成员速度方向对齐的趋势")
    print("4. max_speed: 最大速度，限制群体成员的移动速度")
    print("5. perception_radius: 感知半径，决定群体成员能感知到邻居的距离")
    print("6. obstacle_weight: 避障权重，控制避开障碍物的力量")
    print("7. wander_weight: 游走权重，控制随机移动的力量")
    print("8. formation_weight: 队形权重，控制保持队形的力量")
    print()

def usage_guide():
    """
    使用指南
    """
    print("=== 使用指南 ===")
    print("1. 在主程序中启用群体智能插件")
    print("2. 通过控制面板调节参数观察不同效果")
    print("3. 尝试不同的群体类型和行为组合")
    print("4. 使用示例函数快速创建特定场景")
    print("5. 通过配置管理功能保存和加载参数设置")
    print()

def api_examples():
    """
    API使用示例
    """
    print("=== API使用示例 ===")
    print("# 创建群体管理器")
    print("swarm_manager = SwarmManager(world)")
    print()
    print("# 设置群体参数")
    print("swarm_manager.config.set('cohesion_weight', 1.5)")
    print("swarm_manager.config.set('separation_weight', 2.0)")
    print()
    print("# 创建示例群体")
    print("swarm_manager.create_example_swarm()")
    print()
    print("# 添加障碍物")
    print("swarm_manager.create_obstacle(Vec3(10, 10, 5), 3.0)")
    print()
    print("# 添加捕食者")
    print("swarm_manager.create_predator(Vec3(-10, -10, 8))")
    print()
    print("# 设置目标")
    print("swarm_manager.set_target(Vec3(20, 20, 10))")
    print()
    print("# 切换暂停状态")
    print("swarm_manager.toggle_pause()")
    print()

if __name__ == "__main__":
    basic_example()
    advanced_example()
    scenario_examples()
    configuration_examples()
    usage_guide()
    api_examples()