Eintragsdetails ansehen

IDProjektKategorieSichtbarkeitZuletzt aktualisiert
0002682EresseaGeneralöffentlich2020-07-30 10:40
ReporterTar_Nelarn Bearbeitung durchEnno  
PrioritätnormalSchweregradkleinerer FehlerReproduzierbarimmer
Status erledigtLösungerledigt 
Behoben in Version3.25 
Zusammenfassung0002682: Schößlingsumwandlung stagniert bei vielen Schößlingen
Beschreibung

In Region "tLmxsh" (mit Einheit xt6y) befinden sich seit einer Weile ziemlich viele hauptsächlich durch Wasser des Lebens erzeugte Schößlinge die nach meiner Hoffnung langfristig zu Bäumen werden.

Wegen der Überschreitung des Datentyps int (vergleiche Bugreport 2624) wurde (soweit ich mich erinnere) eine limitierte Umwandlung Schößlinge zu Bäumen eingeführt - diese hat aber nun offenbar die Nebenwirkung, dass die Zahl der Schößlinge in der Region nicht mehr unter (in diesem Fall) 163840 = 5*32768 fallen kann - die Umwandlung wird immer kleiner je näher man kommt. Konkret ist meine Beobachtung, dass die Zahl der umgewandelten Schößlinge als 1/6 der Schößlinge in der Region abzüglich von Vielfachem noch 32768 berechnet wird. Beobachtet habe ich das über die letzten 3 Wochen des Frühjahrs:

Beobachtet:
alte Änderung alte
Schößlinge Schößlinge neue Anzahl Schößlinge
1174: "196608-int((196608-5x32768)/6)" = 191147
1175: "191147-int((191147-5x32768)/6)" = 186596
1176: "186596-int((186596-5x32768)/6)" = 182804

Würde dann wie folgt weiterlaufen:
1177: "182804-int((182804-5x32768)/6)" = 179644
1178: "179644-int((179644-5x32768)/6)" = 177010
1179: "177010-int((177010-5x32768)/6)" = 174815

und letztlich bei 5x32768 stagnieren.

Wäre es möglich die Implementierung zu ändern von momentan wohl

Berechnunggrundlage = "Schößlinge minus Vielfache von 32768"

auf z.B.:

if ( Schößlinge <= 32768 ) Berechnungsgrundlage=Schößlinge
else Berechnungsgrundlage=32768

Oder noch besser wäre natürlich wenn man die Berechnung
der Schößlinge noch im langen Datentyp vornehmen könnte
und dann z.B. separat als "Umzuwandelnde_Schößlinge" übergeben
würde...

Parteitd
SpielE2
Report1176

Notizen / Dateien

Xolgrim

Xolgrim

2020-07-09 11:06

Entwickler   ~0008893

Zuletzt bearbeitet: 2020-07-09 11:07

3 Überarbeitungen anzeigen

Als Multiplikationszeichen bitte keine Sternchen sondern x benutzen. Sternchen sind in Mantis ein Zeichen für die Formatierung.

Tar_Nelarn

Tar_Nelarn

2020-07-24 07:55

Reporter   ~0008909

ok!

Enno

Enno

2020-07-28 20:16

Administrator   ~0008919

Ich muss zugeben, dass ich das Problem noch nicht verstehe, aber ich gucke mal in den Code.

Enno

Enno

2020-07-28 20:40

Administrator   ~0008920

Ich glaube, die spannende Woche ist 1174, wo der Winter in Frühling überging, und das Wachstum für den Frühling berechnet wurde.

Enno

Enno

2020-07-28 20:51

Administrator   ~0008921

In der Woche gab es 0 Samen und 196608 Schößlinge (wird auf 32767 begrenzt). Es stimmt allerdings, das die nicht alle zu Bäumen werden können: In der ersten Woche wächst 1/6 von ihnen heran (5461), vom Rest dann in der Folgewoche wieder 1/6 (nur noch 4551), usw, das gibt also 32767-pow(5/6, 6)*32767 = 21793 neue Bäume in der Saison. Warum das so gelöst ist, und nicht mit einem festen Wachstum jede Woche, und einem Bruchteil der Schößlinge, der einer durchschnittlichen Dauer des Wachstums bis zum Baum entspricht, weiß ich nicht. Man will ja auch nicht, dass es nur ein Jahr dauert, damit aus einem Samen ein Schöðling wird, der dann ein Jahr später schon ein Baum ist. Oder? Wie lange dauert es vom Samen bis zum Holz?

Tar_Nelarn

Tar_Nelarn

2020-07-30 08:26

Reporter   ~0008922

Momentan ist meine Annahme/Erwartung, dass das im nächsten Frühjahr so weiter gehen wird - dann aber mit einem Startwert der deutlich kleiner ist: 32767 x (1-pow(5/6, 6)). Bis der Startwert dann irgendwann 0 ist und es stagniert. Obwohl jederzeit daneben noch 163840 = 5 x 32768 Schößlinge stehen, die wohl durch Abschneiden long -> int ignoriert werden.

Man will ja auch nicht, dass es nur ein Jahr dauert, damit aus einem Samen ein Schöðling wird, der dann ein
Jahr später schon ein Baum ist. Oder? Wie lange dauert es vom Samen bis zum Holz?

Ich denke versus "real" ist die eingebaute Verzögerung hier in der Samenproduktion zu finden. Real: Viele Samen/Baum/Jahr und große Selektion und langsames Wachstum bis neue Samen entstehen. Eressea: deutlich kleiner 1 Samen/Baum/Jahr, aber dafür keine Selektion und schnelles Wachstum zum Baum. Passt aus meiner Sicht insgesamt dann schon.

Enno

Enno

2020-07-30 10:40

Administrator   ~0008923

Momentan ist meine Annahme/Erwartung, dass das im nächsten Frühjahr so weiter gehen wird - dann aber mit einem Startwert der deutlich kleiner ist: 32767 x (1-pow(5/6, 6)). Bis der Startwert dann irgendwann 0 ist und es stagniert. Obwohl jederzeit daneben noch 163840 = 5 x 32768 Schößlinge stehen, die wohl durch Abschneiden long -> int ignoriert werden.

Das deckt sich nicht mit meiner Annahme. Ich rekläre mal, wie ich das gerade vereinfacht implementiert habe:
Im nächsten Frühling fängt alles wieder von vorne an. Das geplante Baumwachstum wird bestimmt, 2/3 des Schösslingsbestand S sollen zu neuen Bäumen werden, über 6 Wochen verteilt, also pro Woche 2/3 * S / 6 = S / 9. Die Zahl merke ich mir, und wenn sie größer als 32767 ist, wird das wöchentliche Wachstum halt auf "nur" 32767 begrenzt. Jede Woche im Frühling werden dann so viele Schösslinge zu Bäumen, und am Ende vom Frühling vergesse ich die Zahl, um sie dann im Folgejahr neu zu berechnen.

Wandlung von Samen nach Schösslingen geht analog. Und ja, das reale Wachstum hat mit der Menge Samen zu tun, die die Bäume abwerfen, das ist aber eine davon unabhängig implementiert, und die genauen Zahlen weiß ich nicht im Kopf.

Enno

Enno

2020-07-30 10:40

Administrator   ~0008924

Vereinfachte Formel für das Wachstum implementiert.

Eintrags-Historie

Änderungsdatum Benutzername Feld Änderung
2020-07-07 00:20 Tar_Nelarn Neuer Eintrag
2020-07-09 11:06 Xolgrim Beschreibung aktualisiert Überarbeitungen anzeigen
2020-07-09 11:06 Xolgrim Notiz hinzugefügt: 0008893
2020-07-09 11:07 Xolgrim Notiz bearbeitet: 0008893 Überarbeitungen anzeigen
2020-07-09 11:07 Xolgrim Notiz bearbeitet: 0008893 Überarbeitungen anzeigen
2020-07-24 07:55 Tar_Nelarn Notiz hinzugefügt: 0008909
2020-07-28 20:16 Enno Notiz hinzugefügt: 0008919
2020-07-28 20:40 Enno Notiz hinzugefügt: 0008920
2020-07-28 20:40 Enno Bearbeitung durch => Enno
2020-07-28 20:40 Enno Status neu => zugewiesen
2020-07-28 20:51 Enno Notiz hinzugefügt: 0008921
2020-07-30 08:26 Tar_Nelarn Notiz hinzugefügt: 0008922
2020-07-30 10:40 Enno Notiz hinzugefügt: 0008923
2020-07-30 10:40 Enno Status zugewiesen => erledigt
2020-07-30 10:40 Enno Lösung offen => erledigt
2020-07-30 10:40 Enno Behoben in Version => 3.25
2020-07-30 10:40 Enno Notiz hinzugefügt: 0008924