Abstandsstrafe fuer getrennte Gruppen + Verbindungslinien-Optionen

- strafen.cfg: neuer optionaler Abschnitt [Abstand] mit Faktor je
  normierter Abstandseinheit (0..100, bezogen auf die max. Ausdehnung
  der Tischanordnung)
- Strukturdaten.py: Strafliste.AbstandFaktor, gibPunkte('Abstand',...),
  bewerten() bestraft den max. Tisch-Tisch-Abstand getrennter Gruppen;
  abwaertskompatibel (fehlt der Abschnitt -> Faktor 0)
- platz.py: --show-/--hide-connections steuern die Verbindungslinien
  getrennter Gruppen in der SVG
- work/*, doc/images/*: Beispiele neu durchgerechnet

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Michael Stangl
2026-07-11 13:47:27 +02:00
parent 98b1dc4f36
commit 4f87895303
18 changed files with 1540 additions and 1379 deletions
+13 -1
View File
@@ -15,5 +15,17 @@ TischWertigkeiten={ 1:-3, 2:-2, 3:-1 }
# TischWertigkeiten sind Strafpunkte fuer schlechte Ausnutzung der
# freien Sitze an einem Tisch.
# An einem Tisch, der bis auf einen Platz voll besetzt ist,
# An einem Tisch, der bis auf einen Platz voll besetzt ist,
# kann niemand mehr gut dazu. wenn zwei Plaetze frei sind, ist das etwas besser.
# Strafpunkte fuer den Abstand zwischen getrennten Teilen einer Gruppe.
# Wird eine Gruppe auf mehrere Tische aufgeteilt, ist ein grosser raeumlicher
# Abstand zwischen den Teilen viel schlechter als ein kleiner.
# Der Abstand wird als normierter Wert 0..100 berechnet: Bezugsgroesse ist die
# maximale Ausdehnung der Tischanordnung (Breite oder Laenge). Ein Abstand von
# 100 heisst also, dass ein Gruppenteil ganz links/oben und der andere ganz
# rechts/unten sitzt.
# Faktor = Strafpunkte je normierter Abstandseinheit. Bei Faktor=-0.2 kostet
# der maximal moegliche Abstand (100) demnach -20 Punkte.
[Abstand]
Faktor=-0.2