Fix: Correct city decay bug in simulation logic #5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The original C# port contained a bug in the zone growth/decay logic that was causing cities to gradually decay to zero. The comparison to determine whether a zone should grow or shrink was flawed due to a misinterpretation of the original C code's random number generation.
This commit corrects the logic in the
DoResidential,DoCommercial, andDoIndustrialmethods inMicropolis.Core/Micropolis.Zone.cs. The incorrect comparison has been replaced with a more balanced one that correctly models the probabilistic nature of zone development, preventing the city from decaying over time.