From 65feb71e562036de96440e04d607dcd40e7e820f Mon Sep 17 00:00:00 2001 From: D4rkst3r Date: Fri, 7 Aug 2026 12:42:49 +0200 Subject: [PATCH] Obstbaum-Test: Begruendung des Radius-Kriteriums richtiggestellt Nur Doku, keine Schranke und keine Geometrie geaendert - deshalb kein Versionssprung. Der Dateikopf behauptete, "Kronenradius >= 1.80" sei die technische Voraussetzung der Frucht-Streuung. Das stimmte, solange die Streuung einen festen Radial-Schub (0.24 m) benutzte: bei zu kleiner Krone haette dieser feste Betrag die Fruechte nach draussen geschoben. Die Kopplung ist weg. Seit dem Umbau auf die Bueschel-Schalen arbeitet die Streuung mit einer Huellen-Tabelle (16 Sektoren x 6 Hoehenbaender) und setzt die Fruechte auf 94 % der LOKALEN Huelle - vollstaendig relativ. Das Kriterium bleibt (Entscheidung der Spielseite), aber als Look- und Gameplay-Boden: unter einem Obstbaum soll man ernten koennen. Und weil max ueber die RINDE von den Schalen unberuehrt bleibt, waehrend jedes Blatt-Mass mit der Bauform wandert - eine Umstellung auf ein Blatt-Perzentil wuerde die Zahl still umdeuten und zwei Kalibrier-Runden neu aufmachen. Eine Begruendung, die nicht mehr traegt, ist gefaehrlicher als gar keine: der naechste Leser haette die Kopplung fuer bestehend gehalten. Co-Authored-By: Claude Opus 4.8 --- tests/test_obstbaum.py | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/tests/test_obstbaum.py b/tests/test_obstbaum.py index e023c4e..74d2da1 100644 --- a/tests/test_obstbaum.py +++ b/tests/test_obstbaum.py @@ -1,13 +1,29 @@ -"""Obstbaum: Krone gross genug fuer Fruechte auf der Aussenhaut. +"""Obstbaum: Kronenform, Deckung und ein Kronenradius-Boden. -Die Frucht-Streuung der Spielseite setzt Fruechte auf die AUSSENHAUT der Krone -und schiebt sie radial nach aussen. Das setzt eine Krone voraus, die groesser -ist als eine einzelne Blatt-Card - sonst gibt es keine Haut, auf die sich etwas -setzen laesst. Am generischen "baum" war der Kronenradius 0.78 m bei 1.28 m -Card-Diagonale: die Cards waren groesser als die Krone. +ZUR HERKUNFT DES RADIUS-KRITERIUMS, damit es nicht als falsche Zusicherung +weiterlebt (Stand 2026-08-06, von der Spielseite klargestellt): -Deshalb ist das hier KEIN Silhouetten-Test mit Geschmacksurteil, sondern eine -funktionale Bedingung: Kronenradius > Card-Groesse. +Urspruenglich war "Kronenradius >= 1.80 m" eine TECHNISCHE Voraussetzung. Die +Frucht-Streuung schob die Fruechte mit einem festen Radial-Schub (0.24 m) ueber +die Card-Schale hinaus; bei zu kleiner Krone haette dieser feste Betrag sie nach +draussen geschoben. Am generischen "baum" lag der Kronenradius bei 0.78 m gegen +1.28 m Card-Diagonale - die Cards waren groesser als die Krone. + +Diese Kopplung ist WEG. Seit dem Umbau auf die Bueschel-Schalen arbeitet die +Streuung mit einer Huellen-Tabelle (16 Winkel-Sektoren x 6 Hoehenbaender) und +setzt die Fruechte auf 94 % der LOKALEN Huelle - vollstaendig relativ, ohne +absolute Distanz, damit unabhaengig von der Kronengroesse. + +Das Kriterium bleibt trotzdem, aber als LOOK- UND GAMEPLAY-BODEN: unter einem +Obstbaum soll man ernten koennen. Und als stabile Groesse - max ueber die RINDE +ist von den Schalen unberuehrt, waehrend jedes Blatt-Mass mit der Bauform +wandert. Auf ein Blatt-Perzentil umzustellen wuerde die Zahl still umdeuten und +zwei Kalibrier-Runden neu aufmachen, ohne etwas zu gewinnen. + +Was die Streuung tatsaechlich braucht, ist Laub in ausreichend vielen +Winkel-Sektoren - eine einseitige Krone wuerde die Fruechte verklumpen. Das ist +derzeit ueberall erfuellt (Kronen-Exzentrik 3-13 % des Radius) und deshalb hier +nicht geprueft. Vorgaben der Spielseite, die mitgeprueft werden: Kronenansatz ~30 %, Kronenradius S4 >= 1.8 m, Hoehe 4-5 m, @@ -325,7 +341,8 @@ for seed in SEEDS: "Obstbaum muss die RUNDESTE Art bleiben, Richtwert <= 65 %%" % (seed, kugel, EICHE_KUGEL, 100 * kugel / EICHE_KUGEL)) - # DIE funktionale Bedingung. + # Kronenradius gegen Card-Groesse. Historisch die funktionale Bedingung der + # Frucht-Streuung, heute ein Plausibilitaets-Boden - siehe Dateikopf. if v < 1.3: fails.append("Seed %d: Kronenradius %.2f m bei %.2f m Card - die Krone " "hat keine Aussenhaut fuer Fruechte" % (seed, kron_r, card_max))