# Einheiten: backend/tft/sim/autoplay.py stand: f41ac76b5789 ## backend/tft/sim/autoplay.py::play_afk beschreibung: Spielt ein vollständiges Game headless zu Ende, ohne steuernd einzugreifen. input: ein laufendes `Game`-Objekt. output: die finale Platzierung (`game.placement`) als int. entscheidungen: - Kein eigener Steuerungscode — jede Runde wird nur durch `game.step()` fortgeschaltet. beleg: "game.step()" - Abbruchbedingung ist ausschließlich das Ende des Spiels über `game.over`. beleg: "while not game.over:" kanten: - nutzt: backend/tft/sim/game.py::Game - wird-genutzt-von: backend/tft/sim/autoplay.py::run ## backend/tft/sim/autoplay.py::play_econ beschreibung: Spielt ein Game mit der Econ-Policy (`fast8`) zu Ende und liefert die Platzierung. input: ein laufendes `Game`-Objekt. output: die finale Platzierung (`game.placement`) als int. entscheidungen: - Verwendet fest das Archetyp-Profil `fast8` aus der Policy-Bibliothek. beleg: "params = policy.ARCHETYPES[\"fast8\"]" - Greift pro Runde sowohl über die Policy als auch über `game.step()` in den Spielablauf ein. beleg: "policy.act(game.player, game.pool, game.artifact, game.cfg, game.rng," kanten: - nutzt: backend/tft/sim/policy.py::act - nutzt: backend/tft/sim/game.py::Game - wird-genutzt-von: backend/tft/sim/autoplay.py::run ## backend/tft/sim/autoplay.py::run beschreibung: Führt n headless Spiele mit der gewählten Policy aus und aggregiert Platzierungen. input: `artifact`, `cfg`, ein `policy_name` und die Anzahl `n` (optional `seed`). output: ein Dict mit `games`, `avg_placement` und `top4_rate`. entscheidungen: - Die Auswahl der konkreten Strategie erfolgt über das Mapping `POLICIES` per Name. beleg: "POLICIES[policy_name](game)" - Pro Lauf wird ein neuer Seed aus `seed + i` abgeleitet, um Wiederholbarkeit pro Spiel zu garantieren. beleg: "Game(artifact, cfg, seed=seed + i)" - `top4_rate` zählt Platzierungen ≤ 4 als Erfolg. beleg: "if p <= 4" kanten: - ruft-auf: backend/tft/sim/autoplay.py::play_afk - ruft-auf: backend/tft/sim/autoplay.py::play_econ - nutzt: backend/tft/sim/game.py::Game