2.1 KiB
2.1 KiB
Einheiten: backend/tft/sim/autoplay.py
stand: f41ac76b57
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
fast8aus 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
POLICIESper Name. beleg: "POLICIESpolicy_name" - Pro Lauf wird ein neuer Seed aus
seed + iabgeleitet, um Wiederholbarkeit pro Spiel zu garantieren. beleg: "Game(artifact, cfg, seed=seed + i)" top4_ratezä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