Files
tft/.planer/einheiten/backend__tft__sim__autoplay.py.md
2026-07-24 11:24:24 +02:00

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 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: "POLICIESpolicy_name"
  • 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