This commit is contained in:
team3
2026-07-29 15:19:41 +02:00
parent 2e86d682eb
commit 5d42b4cfc5
155 changed files with 14482 additions and 1736 deletions

View File

@@ -19,6 +19,14 @@ TRENNER = re.compile(r"^-{3,}\s*$")
VISION = "vision"
ARTEN = ("kern", "optional", VISION)
# Eine Funktion ist entweder geliefert oder noch offen. „offen" heißt: die Karte
# beschreibt sie schon, den Code gibt es noch nicht — bestellt, nicht gebaut.
# Ohne diese Unterscheidung meldet die Vorwärtsprüfung jede geplante Funktion als
# Fehler und will sie streichen.
OFFEN = "offen"
GEBAUT = "gebaut"
STAENDE = (GEBAUT, OFFEN)
def _art(bloecke: list) -> str:
wert = bloecke[0].strip().lower() if bloecke else ""
@@ -61,7 +69,11 @@ def zerlege(roh: str) -> dict:
# vor der ersten Funktion: Karten-Ziel, danach: Ziel der Funktion
(funktionen[-1]["ziel"] if funktionen else ziel).append(text)
elif schluessel == "funktion":
funktionen.append({"text": text, "ziel": [], "regeln": [], "testen": []})
funktionen.append({"text": text, "ziel": [], "regeln": [], "testen": [],
"stand": GEBAUT})
elif schluessel == "stand" and funktionen:
wert = text.strip().lower()
funktionen[-1]["stand"] = wert if wert in STAENDE else GEBAUT
elif schluessel in ("regel", "regeln"):
# vor der ersten Funktion: Karten-Regeln, danach: Regeln der Funktion
(funktionen[-1]["regeln"] if funktionen else regeln).append(text)