9de80d2f2a
- bestellung.xml -> bestellung.json: neuer JSONConfig (loest XMLConfig ab), alle work-Beispiele konvertiert, Doku (CLAUDE/README/dateiformate) umgestellt - ga.py: Beobachtungsobjekt Entwicklung zeichnet den Loesungsverlauf auf, neuer Schalter --show-development erzeugt Entwicklung.svg (beste/mittlere/ schlechteste Wertigkeit ueber die Zyklus-Aktionen) - web/main.py: neuer Endpunkt /tische-datei (tische.ini-Upload, ast.literal_eval), Frontend kann jetzt eine tische.ini laden - libs/webserver.py: plattformunabhaengige start/stop/status-Steuerung der Web-Testinstanz (ersetzt run_web_helper.ps1), raeumt auch verwaiste --reload-Prozessbaeume zuverlaessig auf - Sicherheit/Modernisierung: eval() -> ast.literal_eval in Tische/Strafliste, sicherer Mini-Auswerter fuer die String-Ausdruecke in zyklus.cfg, defaultdict(set) in Plaetze - SVG: Tischnummer fett zentriert im Tischkreis statt "Tisch x" darueber - Tests: JSONConfig, Entwicklung und der Zyklus-Auswerter abgedeckt (9 Tests) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
176 lines
16 KiB
XML
176 lines
16 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="995.887" height="667.258" viewBox="0 0 995.887 667.258">
|
|
<rect width="100%" height="100%" fill="white"/>
|
|
<circle cx="744.415" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="744.415" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="744.415" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">6</text>
|
|
<circle cx="87.1573" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="87.1573" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="87.1573" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">7</text>
|
|
<circle cx="251.472" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="251.472" cy="216.979" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
|
<circle cx="251.472" cy="285.965" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
|
<circle cx="251.472" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="251.472" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">3</text>
|
|
<circle cx="908.73" cy="415.786" r="48.4" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="908.73" cy="389.386" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="931.593" cy="402.586" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="931.593" cy="428.986" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="908.73" cy="442.186" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="885.867" cy="428.986" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="885.867" cy="402.586" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="908.73" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="908.73" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">17</text>
|
|
<circle cx="415.786" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="415.786" cy="216.979" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="442.754" cy="229.966" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="449.415" cy="259.147" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="430.752" cy="282.549" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="400.82" cy="282.549" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="382.158" cy="259.147" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="388.818" cy="229.966" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="415.786" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="415.786" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">4</text>
|
|
<circle cx="87.1573" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="87.1573" cy="216.979" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
|
<circle cx="111.548" cy="227.081" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
|
<circle cx="121.651" cy="251.472" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
<circle cx="111.548" cy="275.862" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
|
<circle cx="87.1573" cy="285.965" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
<circle cx="62.7669" cy="275.862" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
|
<circle cx="52.664" cy="251.472" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
<circle cx="62.7669" cy="227.081" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
|
<circle cx="87.1573" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="87.1573" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">2</text>
|
|
<circle cx="580.101" cy="251.472" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="580.101" cy="216.979" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="604.491" cy="227.081" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="614.594" cy="251.472" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="604.491" cy="275.862" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
|
<circle cx="580.101" cy="285.965" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="555.711" cy="275.862" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="545.608" cy="251.472" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="555.711" cy="227.081" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
|
<circle cx="580.101" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="580.101" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">5</text>
|
|
<circle cx="251.472" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="251.472" cy="381.293" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
|
<circle cx="275.862" cy="391.396" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
<circle cx="285.965" cy="415.786" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
<circle cx="275.862" cy="440.177" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
<circle cx="251.472" cy="450.28" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
<circle cx="227.081" cy="440.177" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
|
<circle cx="216.979" cy="415.786" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
<circle cx="227.081" cy="391.396" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
<circle cx="251.472" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="251.472" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">8</text>
|
|
<circle cx="415.786" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="415.786" cy="381.293" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
<circle cx="440.177" cy="391.396" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
<circle cx="450.28" cy="415.786" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
<circle cx="440.177" cy="440.177" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
<circle cx="415.786" cy="450.28" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
<circle cx="391.396" cy="440.177" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
<circle cx="381.293" cy="415.786" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
<circle cx="391.396" cy="391.396" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
<circle cx="415.786" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="415.786" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">9</text>
|
|
<circle cx="580.101" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="580.101" cy="381.293" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
|
<circle cx="604.491" cy="391.396" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
|
<circle cx="614.594" cy="415.786" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
|
<circle cx="604.491" cy="440.177" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
|
<circle cx="580.101" cy="450.28" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
|
<circle cx="555.711" cy="440.177" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
|
<circle cx="545.608" cy="415.786" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
|
<circle cx="555.711" cy="391.396" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
|
<circle cx="580.101" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="580.101" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">10</text>
|
|
<circle cx="744.415" cy="415.786" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="744.415" cy="381.293" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
|
<circle cx="768.806" cy="391.396" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
|
<circle cx="778.909" cy="415.786" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
|
<circle cx="768.806" cy="440.177" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
|
<circle cx="744.415" cy="450.28" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
|
<circle cx="720.025" cy="440.177" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
|
<circle cx="709.922" cy="415.786" r="12" fill="#dcbeff" stroke="black" stroke-width="1"/>
|
|
<circle cx="720.025" cy="391.396" r="12" fill="#469990" stroke="black" stroke-width="1"/>
|
|
<circle cx="744.415" cy="415.786" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="744.415" y="415.786" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">11</text>
|
|
<circle cx="87.1573" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="87.1573" cy="545.608" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
|
<circle cx="111.548" cy="555.711" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
|
<circle cx="121.651" cy="580.101" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
|
<circle cx="111.548" cy="604.491" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
|
<circle cx="87.1573" cy="614.594" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
|
<circle cx="62.7669" cy="604.491" r="12" fill="#800000" stroke="black" stroke-width="1"/>
|
|
<circle cx="52.664" cy="580.101" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
|
<circle cx="62.7669" cy="555.711" r="12" fill="#9a6324" stroke="black" stroke-width="1"/>
|
|
<circle cx="87.1573" cy="580.101" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="87.1573" y="580.101" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">12</text>
|
|
<circle cx="251.472" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="251.472" cy="545.608" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
|
<circle cx="275.862" cy="555.711" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
|
<circle cx="285.965" cy="580.101" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
|
<circle cx="275.862" cy="604.491" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
|
<circle cx="251.472" cy="614.594" r="12" fill="#aaffc3" stroke="black" stroke-width="1"/>
|
|
<circle cx="227.081" cy="604.491" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
|
<circle cx="216.979" cy="580.101" r="12" fill="#000075" stroke="black" stroke-width="1"/>
|
|
<circle cx="227.081" cy="555.711" r="12" fill="#e6194b" stroke="black" stroke-width="1"/>
|
|
<circle cx="251.472" cy="580.101" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="251.472" y="580.101" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">13</text>
|
|
<circle cx="415.786" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="415.786" cy="545.608" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="440.177" cy="555.711" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
|
<circle cx="450.28" cy="580.101" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
<circle cx="440.177" cy="604.491" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
|
<circle cx="415.786" cy="614.594" r="12" fill="#4363d8" stroke="black" stroke-width="1"/>
|
|
<circle cx="391.396" cy="604.491" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
<circle cx="381.293" cy="580.101" r="12" fill="#f58231" stroke="black" stroke-width="1"/>
|
|
<circle cx="391.396" cy="555.711" r="12" fill="#3cb44b" stroke="black" stroke-width="1"/>
|
|
<circle cx="415.786" cy="580.101" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="415.786" y="580.101" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">14</text>
|
|
<circle cx="580.101" cy="580.101" r="56.4933" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="580.101" cy="545.608" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
|
<circle cx="604.491" cy="555.711" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
|
<circle cx="614.594" cy="580.101" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
<circle cx="604.491" cy="604.491" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
|
<circle cx="580.101" cy="614.594" r="12" fill="#bfef45" stroke="black" stroke-width="1"/>
|
|
<circle cx="555.711" cy="604.491" r="12" fill="#911eb4" stroke="black" stroke-width="1"/>
|
|
<circle cx="545.608" cy="580.101" r="12" fill="#42d4f4" stroke="black" stroke-width="1"/>
|
|
<circle cx="555.711" cy="555.711" r="12" fill="#f032e6" stroke="black" stroke-width="1"/>
|
|
<circle cx="580.101" cy="580.101" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="580.101" y="580.101" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">15</text>
|
|
<circle cx="415.786" cy="87.1573" r="73.0009" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="415.786" cy="36.1564" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="441.287" cy="42.9892" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
|
<circle cx="459.954" cy="61.6568" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="466.787" cy="87.1573" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
|
<circle cx="459.954" cy="112.658" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
|
<circle cx="441.287" cy="131.325" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="415.786" cy="138.158" r="12" fill="#fabed4" stroke="black" stroke-width="1"/>
|
|
<circle cx="390.286" cy="131.325" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="371.618" cy="112.658" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="364.785" cy="87.1573" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="371.618" cy="61.6568" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="390.286" cy="42.9892" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="415.786" cy="87.1573" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="415.786" y="87.1573" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">1</text>
|
|
<circle cx="908.73" cy="251.472" r="77.1573" fill="white" stroke="black" stroke-width="1.5"/>
|
|
<circle cx="908.73" cy="196.315" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="934.363" cy="202.632" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="954.124" cy="220.139" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="963.485" cy="244.823" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="960.303" cy="271.031" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="945.306" cy="292.758" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="921.93" cy="305.026" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="895.53" cy="305.026" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="872.154" cy="292.758" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="857.157" cy="271.031" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="853.975" cy="244.823" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="863.336" cy="220.139" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="883.097" cy="202.632" r="12" fill="#888888" stroke="black" stroke-width="1"/>
|
|
<circle cx="908.73" cy="251.472" r="12" fill="white" fill-opacity="0.75"/>
|
|
<text x="908.73" y="251.472" text-anchor="middle" dominant-baseline="central" font-size="13.2" font-weight="bold" fill="black">16</text>
|
|
</svg>
|