Eintragsdetails ansehen
ID | Projekt | Kategorie | Sichtbarkeit | Meldungsdatum | Zuletzt aktualisiert |
---|---|---|---|---|---|
0002682 | Eressea | General | öffentlich | 2020-07-07 00:20 | 2020-08-08 12:21 |
Reporter | Tar_Nelarn | Bearbeitung durch | Enno | ||
Priorität | normal | Schweregrad | kleinerer Fehler | Reproduzierbar | immer |
Status | erledigt | Lösung | erledigt | ||
Behoben in Version | 3.25 | ||||
Zusammenfassung | 0002682: 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... | ||||
Tags | Keine Tags zugeordnet. | ||||
Partei | td | ||||
Spiel | E2 | ||||
Report | 1176 | ||||
Als Multiplikationszeichen bitte keine Sternchen sondern x benutzen. Sternchen sind in Mantis ein Zeichen für die Formatierung. |
|
ok! |
|
Ich muss zugeben, dass ich das Problem noch nicht verstehe, aber ich gucke mal in den Code. |
|
Ich glaube, die spannende Woche ist 1174, wo der Winter in Frühling überging, und das Wachstum für den Frühling berechnet wurde. |
|
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? |
|
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.
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. |
|
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. |
|
Vereinfachte Formel für das Wachstum implementiert. |
|
Update: Die Lösung scheint mir gut. Mir ist diese Runde eine mögliche Komplikation aufgefallen die ich mitteilen wollte: Im aktuellen Report (der erstmalig nun Sommer anzeigt - soweit ich das verstehe gehört der Vorgang selber also schon in den Sommer) sind überraschend viele Schösslinge zu Bäumen geworden. Offenbar alle "restlichen Schösslinge" abzüglich der 5 x 32768 die noch ignoriert werden. 1173-37 (Winter): 535328/196608=731936 Deltas: 1174-37 (Frühling): 540789/191147=731936 +5461/-5461=+0 1175-37 (Frühling): 545340/186596=731936 +4551/-4551=+0 1176-37 (Frühling): 549132/182804=731936 +3792/-3792=+0 1177-37 (Frühling): 552292/179644=731936 +3160/-3160=+0 1178-37 (Frühling): 554925/177011=731936 +2633/-2633=+0 1179-37 (Frühling): 557120/174816=731936 +2195/-2195=+0 1180-37 (Sommer): 568095/163841=731936 +10975/-10975=+0 Sowas hatte ich schon vereinzelt gesehen, aber nie in dieser Reinform. Offenbar sollen alle "alten Schösslinge" innerhalb eines Jahres Bäume werden. Abzüglich der 5 x 32768 ist also noch 1 Schössling übrig. Was passiert nun in der neuen Lösung? Falls ein zweiter Code-Teil immer noch mit dieser "1" rechnen wird - gibt es dann nächsten 1. Sommer Monat womöglich haufenweise negatives Schössling->Bäume Wachstum (und die 1 wieder zu erreichen da ein Teil des Codes glaubt insgesamt soll nur 1 Schössling zu Bäumen werden)? Falls gegenstandslose Sorge einfach wieder zumachen. |
|
Keine Sorge, negatives Wachstum ist ausgeschlossen. Das Wachstum wird in jedem Frühlingsmonat gleich sein. |
|
Änderungsdatum | Benutzername | Feld | Änderung |
---|---|---|---|
2020-07-07 00:20 | Tar_Nelarn | Neuer Eintrag | |
2020-07-09 11:06 | Xolgrim | Beschreibung aktualisiert | |
2020-07-09 11:06 | Xolgrim | Notiz hinzugefügt: 0008893 | |
2020-07-09 11:07 | Xolgrim | Notiz bearbeitet: 0008893 | |
2020-07-09 11:07 | Xolgrim | Notiz bearbeitet: 0008893 | |
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 | |
2020-08-07 18:55 | Tar_Nelarn | Status | erledigt => Rückmeldung |
2020-08-07 18:55 | Tar_Nelarn | Lösung | erledigt => wiedereröffnet |
2020-08-07 18:55 | Tar_Nelarn | Notiz hinzugefügt: 0008941 | |
2020-08-08 12:21 | Enno | Status | Rückmeldung => erledigt |
2020-08-08 12:21 | Enno | Lösung | wiedereröffnet => erledigt |
2020-08-08 12:21 | Enno | Notiz hinzugefügt: 0008945 |