From db300f950cb03d1ba62d0c7f3a26bd004859b178 Mon Sep 17 00:00:00 2001 From: MarcUs7i <96580944+MarcUs7i@users.noreply.github.com> Date: Tue, 17 Dec 2024 20:35:57 +0100 Subject: [PATCH] Looks better --- BucketChain/Chain.cs | 8 +++++++- BucketChain/Person.cs | 26 +++++--------------------- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/BucketChain/Chain.cs b/BucketChain/Chain.cs index 326c72b..6ab8f78 100644 --- a/BucketChain/Chain.cs +++ b/BucketChain/Chain.cs @@ -11,6 +11,7 @@ public sealed class Chain private readonly double _bucketSize; private Person _firstPerson; private int _availableBuckets; + private int _usedBuckets; /// /// Creates a new bucket chain based on the supplied parameters. @@ -56,7 +57,12 @@ public sealed class Chain _fire.BurnHigher(); // step 3 - var bucket = new Bucket(_bucketSize); + Bucket? bucket = null; + if (_usedBuckets < _availableBuckets) + { + bucket = new Bucket(_bucketSize); + _usedBuckets++; + } _firstPerson.UseWell(_well, bucket); // step 4 diff --git a/BucketChain/Person.cs b/BucketChain/Person.cs index eace2df..f3a4895 100644 --- a/BucketChain/Person.cs +++ b/BucketChain/Person.cs @@ -113,7 +113,6 @@ public sealed class Person } LastStepPerformed = currentStep; - RightNeighbor.LastStepPerformed = currentStep; return true; } @@ -127,6 +126,7 @@ public sealed class Person var amount = _forwardBucket?.Empty(); fire.GetHitByWater(amount ?? 0); _backwardBucket = _forwardBucket; + _forwardBucket = null; } /// @@ -145,7 +145,7 @@ public sealed class Person well.FillBucket(_forwardBucket); } // else fill backward bucket if empty - else if (_backwardBucket is { IsEmpty: true }) + else if (_forwardBucket == null && _backwardBucket is { IsEmpty: true }) { well.FillBucket(_backwardBucket); @@ -157,26 +157,10 @@ public sealed class Person } } // else add additional bucket - else if (additionalBucket != null) + else if (additionalBucket != null && _forwardBucket == null && _backwardBucket == null) { - if (_forwardBucket == null) - { - _forwardBucket = additionalBucket; - } - else if (_backwardBucket == null) - { - _backwardBucket = additionalBucket; - } - - // try to fill the new bucket - if (_forwardBucket is { IsEmpty: true }) - { - well.FillBucket(_forwardBucket); - } - else if (_backwardBucket is { IsEmpty: true }) - { - well.FillBucket(_backwardBucket); - } + _forwardBucket = additionalBucket; + well.FillBucket(_forwardBucket); } }