Files
planer2/daten/TFT/.pruefung.json
2026-07-29 15:19:41 +02:00

318 lines
10 KiB
JSON

{
"abdeckung": {
"bedienen:act": {
"abdruck": "965eccb9356235b1",
"funktion": "Shop sperren",
"trug": "b6a2ab03493b74c5"
},
"bedienen:buy": {
"abdruck": "63c51977c098cde3",
"funktion": "Item kaufen",
"trug": "f3d6ca24335fa3b1"
},
"bedienen:buyXp": {
"abdruck": "1a0c5247f488c54c",
"funktion": "XP kaufen",
"trug": "45683c6493a79b31"
},
"bedienen:equip": {
"abdruck": "e9e549414ab5a0d1",
"funktion": "Einheit ausrüsten",
"trug": "8c6d6267f598e37d"
},
"bedienen:move": {
"abdruck": "8ce9d559861ca921",
"funktion": "",
"trug": ""
},
"bedienen:next": {
"abdruck": "0b481f13ca9aebf9",
"funktion": "Runde fortsetzen",
"trug": "45149ffb5a41db45"
},
"bedienen:p": {
"abdruck": "88b57fbbc98d450c",
"funktion": "Gegner einblenden",
"trug": "b7192893969b60f4"
},
"bedienen:pickAugment": {
"abdruck": "ba2ea2a567fcde9c",
"funktion": "Augment auswählen",
"trug": "7a76e5f3d13ef6d7"
},
"bedienen:reroll": {
"abdruck": "fd56403509531bb6",
"funktion": "XP kaufen",
"trug": "45683c6493a79b31"
},
"bedienen:start": {
"abdruck": "710cd74615808655",
"funktion": "Spiel starten",
"trug": "84ca0e724728251f"
},
"befehl:autoplay": {
"abdruck": "7b035ff596c12934",
"funktion": "",
"trug": ""
},
"befehl:build-artifact": {
"abdruck": "153fed8ab2aa1f5b",
"funktion": "Statische Daten herunterladen",
"trug": "8390b7b7807ab3f0"
},
"befehl:calibrate": {
"abdruck": "e816c00e7793250b",
"funktion": "Ranglisten-Matches crawlen",
"trug": "a9e766bc343f6751"
},
"befehl:crawl": {
"abdruck": "c9bb4cca017189c1",
"funktion": "Statische Daten herunterladen",
"trug": "8390b7b7807ab3f0"
},
"befehl:extract": {
"abdruck": "9595995ee5598702",
"funktion": "Statische Daten herunterladen",
"trug": "8390b7b7807ab3f0"
},
"befehl:fetch-static": {
"abdruck": "2207bccdebcd9aa4",
"funktion": "",
"trug": ""
},
"befehl:refresh": {
"abdruck": "b8b8e201706f4c19",
"funktion": "Spiele automatisch spielen",
"trug": "3ef945fdc4f98631"
},
"route:get /api/game/{game_id}": {
"abdruck": "7391585929a1342c",
"funktion": "Spielstand abrufen",
"trug": "85b87d6154b2363b"
},
"route:get /health": {
"abdruck": "bf52cace58ae302a",
"funktion": "Systemzustand prüfen",
"trug": "3a72c3a11d536884"
},
"route:post /api/game": {
"abdruck": "fe2b8a04ab08ae82",
"funktion": "Spiel starten",
"trug": "84ca0e724728251f"
},
"route:post /api/game/{game_id}/action": {
"abdruck": "952a1c6a5b3a9372",
"funktion": "Spielaktion ausführen",
"trug": "274b16ec98a7a650"
}
},
"belege": {
"[\"analyse\", \"Analysedaten generieren\"]": {
"abdruck": "6a39ed91dabae20c",
"beleg": "\"learned\": learned or {},",
"datei": "backend/tft/model/artifact.py"
},
"[\"analyse\", \"Endboards erfassen\"]": {
"abdruck": "f8be70adea2b51f5",
"beleg": "def extract_all(conn, static: dict) -> tuple[int, Counter]:",
"datei": "backend/tft/matches/extract.py"
},
"[\"analyse\", \"Platzierungen testen\"]": {
"abdruck": "ed43baf02f00a9f5",
"beleg": "def calibrate(conn, artifact: dict, holdout_only: bool = False, score_fn=None) -> dict:",
"datei": "backend/tft/model/calibrate.py"
},
"[\"einheit\", \"Einheit ausrüsten\"]": {
"abdruck": "dc58e2411954a192",
"beleg": "def equip(p: PlayerState, item_idx: int, board_idx: int, artifact: dict | None = None) -> None:",
"datei": "backend/tft/sim/player.py"
},
"[\"einheit\", \"Einheit verschieben\"]": {
"abdruck": "298448c773048dde",
"beleg": "def move(p: PlayerState, where: str, idx: int) -> None:\n src, dst = (p.bench, p.board) if where == \"bench\" else (p.board, p.bench)\n if not (0 <= idx < len(src)):\n raise InvalidAction(\"no unit there\")\n if dst is p.board and len(p.board) >= p.level:\n raise InvalidAction(\"board full for your level\")\n if dst is p.bench and len(p.bench) >= BENCH_SIZE:\n raise InvalidAction(\"bench full\")\n dst.append(src.pop(idx))",
"datei": "backend/tft/sim/player.py"
},
"[\"pipeline\", \"Pipeline ausführen\"]": {
"abdruck": "55afc728ea543cb6",
"beleg": "for stage in (\"crawl\", \"extract\", \"build-artifact\", \"calibrate\"):",
"datei": "backend/tft/cli.py"
},
"[\"pipeline\", \"Ranglisten-Matches crawlen\"]": {
"abdruck": "d91e117ee0d050a4",
"beleg": "def crawl(set_number: int, limit: int = 200) -> int:",
"datei": "backend/tft/matches/crawl.py"
},
"[\"pipeline\", \"Statische Daten herunterladen\"]": {
"abdruck": "b558c5c5a5f4f2d9",
"beleg": "def fetch_static(set_override: int | None = None) -> dict:",
"datei": "backend/tft/staticdata/fetch.py"
},
"[\"pipeline\", \"Systemzustand prüfen\"]": {
"abdruck": "895ac2187188eb0a",
"beleg": "@app.get(\"/health\")\ndef health() -> dict:\n return {\"status\": \"ok\"}",
"datei": "backend/tft/api/app.py"
},
"[\"shop\", \"Augment auswählen\"]": {
"abdruck": "1e9f76ada85ce074",
"beleg": "def pick_augment(p: PlayerState, choice: int) -> None:\n if not p.augment_offer:\n raise InvalidAction(\"no augment offer\")\n if not (0 <= choice < len(p.augment_offer)):\n raise InvalidAction(\"invalid choice\")\n p.augments.append(p.augment_offer[choice])\n p.augment_offer = []",
"datei": "backend/tft/sim/player.py"
},
"[\"shop\", \"Item kaufen\"]": {
"abdruck": "ab0dc67b859c1205",
"beleg": "def buy(p: PlayerState, slot: int, pool: Pool, artifact: dict) -> None:",
"datei": "backend/tft/sim/player.py"
},
"[\"shop\", \"Shop aktualisieren\"]": {
"abdruck": "191c940daa30b69b",
"beleg": "def reroll(p: PlayerState, pool: Pool, cfg: dict, rng: random.Random) -> None:\n cost = cfg[\"shop\"][\"reroll_cost\"]\n if p.gold < cost:\n raise InvalidAction(\"not enough gold\")\n p.gold -= cost\n refresh_shop(p, pool, cfg, rng)",
"datei": "backend/tft/sim/player.py"
},
"[\"shop\", \"Shop sperren\"]": {
"abdruck": "fe80becbfaa689c5",
"beleg": "def toggle_lock(self) -> None:\n self.player.shop_locked = not self.player.shop_locked",
"datei": "backend/tft/sim/game.py"
},
"[\"shop\", \"XP kaufen\"]": {
"abdruck": "1b2d9644e3c6c09f",
"beleg": "def buy_xp(p: PlayerState, cfg: dict) -> None:\n xp = cfg[\"xp\"]\n if p.level >= xp[\"max_level\"]:\n raise InvalidAction(\"max level\")\n if p.gold < xp[\"buy_cost\"]:\n raise InvalidAction(\"not enough gold\")\n p.gold -= xp[\"buy_cost\"]\n p.level, p.xp = economy.apply_xp(p.level, p.xp, xp[\"buy_amount\"], cfg)",
"datei": "backend/tft/sim/player.py"
},
"[\"spiel\", \"Gegner einblenden\"]": {
"abdruck": "302223719243056a",
"beleg": "@click=\"!p.is_player && (expanded = expanded === p.name ? null : p.name)\"",
"datei": "frontend/src/components/OpponentList.vue"
},
"[\"spiel\", \"Runde fortsetzen\"]": {
"abdruck": "df80063512e078a7",
"beleg": "def step(self) -> None:\n \"\"\"Resolve the current round and advance to the next planning phase.\"\"\"",
"datei": "backend/tft/sim/game.py"
},
"[\"spiel\", \"Spiel starten\"]": {
"abdruck": "1fa645dc09353d68",
"beleg": "@app.post(\"/api/game\")\ndef new_game(seed: int | None = None) -> dict:\n artifact, cfg = _load_game_deps()\n game_id = uuid.uuid4().hex[:8]\n GAMES[game_id] = Game(artifact, cfg, seed=seed)\n return {\"game_id\": game_id, **state(game_id)}",
"datei": "backend/tft/api/app.py"
},
"[\"spiel\", \"Spielaktion ausführen\"]": {
"abdruck": "e113ab7b8e4f225b",
"beleg": "@app.post(\"/api/game/{game_id}/action\")\ndef action(game_id: str, req: ActionRequest) -> dict:",
"datei": "backend/tft/api/app.py"
},
"[\"spiel\", \"Spiele automatisch spielen\"]": {
"abdruck": "e6d88c6931086b25",
"beleg": "def run(artifact: dict, cfg: dict, policy_name: str, n: int, seed: int = 1) -> dict:",
"datei": "backend/tft/sim/autoplay.py"
},
"[\"spiel\", \"Spielstand abrufen\"]": {
"abdruck": "7c267f889cc18e5c",
"beleg": "def state(game_id: str) -> dict:",
"datei": "backend/tft/api/app.py"
}
},
"ohne_code": {},
"ohne_karte": {},
"paare": {},
"stil": {
"[\"analyse\", \"\"]": {
"abdruck": "36a5c535e2b6e294",
"probleme": []
},
"[\"analyse\", \"Analysedaten generieren\"]": {
"abdruck": "6c6136aa1f731cea",
"probleme": []
},
"[\"analyse\", \"Endboards erfassen\"]": {
"abdruck": "46ff85afaea26861",
"probleme": []
},
"[\"analyse\", \"Platzierungen testen\"]": {
"abdruck": "58f4097a7aad42b2",
"probleme": []
},
"[\"einheit\", \"\"]": {
"abdruck": "591f6d834b06521d",
"probleme": []
},
"[\"einheit\", \"Einheit ausrüsten\"]": {
"abdruck": "2b91a8a929caf2ea",
"probleme": []
},
"[\"einheit\", \"Einheit verschieben\"]": {
"abdruck": "0fa02b3c5370a837",
"probleme": []
},
"[\"pipeline\", \"\"]": {
"abdruck": "4c05ea483576379e",
"probleme": []
},
"[\"pipeline\", \"Pipeline ausführen\"]": {
"abdruck": "62c1b0e18d38c93e",
"probleme": []
},
"[\"pipeline\", \"Ranglisten-Matches crawlen\"]": {
"abdruck": "cfbaf9497a9ee888",
"probleme": []
},
"[\"pipeline\", \"Statische Daten herunterladen\"]": {
"abdruck": "a5527bcb3a8a8e95",
"probleme": []
},
"[\"pipeline\", \"Systemzustand prüfen\"]": {
"abdruck": "1bf0e238f72fcf45",
"probleme": []
},
"[\"shop\", \"\"]": {
"abdruck": "75b47d1052ed5c4c",
"probleme": []
},
"[\"shop\", \"Augment auswählen\"]": {
"abdruck": "39156336d367d481",
"probleme": []
},
"[\"shop\", \"Item kaufen\"]": {
"abdruck": "642d23d43adc285f",
"probleme": []
},
"[\"shop\", \"Shop aktualisieren\"]": {
"abdruck": "9a4c846ad728fba7",
"probleme": []
},
"[\"shop\", \"Shop sperren\"]": {
"abdruck": "45037477893cfe1e",
"probleme": []
},
"[\"shop\", \"XP kaufen\"]": {
"abdruck": "f39788167c4cc160",
"probleme": []
},
"[\"spiel\", \"\"]": {
"abdruck": "c9853896271c5be7",
"probleme": []
},
"[\"spiel\", \"Gegner einblenden\"]": {
"abdruck": "63d6fda80dd3b2d4",
"probleme": []
},
"[\"spiel\", \"Runde fortsetzen\"]": {
"abdruck": "cba0db2ace42f096",
"probleme": []
},
"[\"spiel\", \"Spiel starten\"]": {
"abdruck": "06a041341108c024",
"probleme": []
},
"[\"spiel\", \"Spielaktion ausführen\"]": {
"abdruck": "4c72ac35204cb4db",
"probleme": []
},
"[\"spiel\", \"Spiele automatisch spielen\"]": {
"abdruck": "63a5feadb6e87b2f",
"probleme": []
},
"[\"spiel\", \"Spielstand abrufen\"]": {
"abdruck": "3b51dd57c2d1e4e3",
"probleme": []
}
},
"verworfen": {}
}