/
Odisseywolf
/
BioSphere
Обзор
Документация
Войти
/
Odisseywolf
/
BioSphere
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
difficulty_system/adaptive_engine.py
50 строк
2 KB
Odisseywolf
Create: difficulty_levels.py, adaptive_engine.py, difficulty_manager.py, schema.sql, common_species.sql, queries.py, Update: ecosystem_engine.py
09 июн 2026, 14:42
Верифицирован
09 июн 2026, 14:42
e0bb572
Код
Авторство
О чём код?
# FILE: difficulty_system/adaptive_engine.py """ "Авторежим" для уровней 1–3. Добавляет не показываемые пользователю виды и корректирует параметры, чтобы экосистема оставалась стабильной. """ from typing import List, Dict from difficulty_system.difficulty_levels import get_difficulty_level class AdaptiveEngine: def __init__(self, level_id: int): self.level = get_difficulty_level(level_id) self.hidden_params = self.level.hidden_params self.auto_species_added = [] def step(self, current_params: Dict, current_species: List[str]) -> dict: """Выполняет один шаг авторежима""" corrections = {} if "soil_pH" in self.hidden_params and abs(current_params["soil_pH"] - 6.5) > 2: corrections["soil_pH"] = self._adjust_ph(current_params["soil_pH"]) if "microbiome" in self.hidden_params: # Автодобавление бактерий/грибов if current_params["soil_organic"] < 1: corrections["add_microbe"] = "saprophytic_fungi" # Сезонность — скрыто if "seasonality" in self.hidden_params: # Если осень — добавляется листовой покров if current_params.get("season") == "autumn": corrections["add_litter"] = True return corrections def _adjust_ph(self, ph: float) -> float: """Автокоррекция pH с помощью не показываемых организмов""" # Пример: добавление лишайников и мхов self.auto_species_added.append("cyanobacteria") self.auto_species_added.append("cyanobacteria") self.auto_species_added.append("moss") return 6.5 def get_corrections(self) -> dict: """Получить накопленные коррекции""" return { "species_to_add": list(set(self.auto_species_added)), "params": {"soil_organic": 1.2, "water_nitrogen": 0.8} }