update
This commit is contained in:
45
.planer/einheiten/backend__tft__sim__autoplay.py.md
Normal file
45
.planer/einheiten/backend__tft__sim__autoplay.py.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user