Person works

This commit is contained in:
MarcUs7i 2024-12-16 11:06:29 +01:00
parent 0f1420367d
commit 1c5a634afb

View file

@ -101,25 +101,20 @@ public sealed class Person
return false;
}
if(RightNeighbor.HasBucket)
if (RightNeighbor._forwardBucket == null && _forwardBucket != null)
{
if (RightNeighbor._backwardBucket != null && _forwardBucket == null)
{
_forwardBucket = RightNeighbor._backwardBucket;
RightNeighbor._backwardBucket = null;
LastStepPerformed = currentStep;
return true;
}
if (RightNeighbor._forwardBucket != null && _backwardBucket == null)
{
_backwardBucket = RightNeighbor._forwardBucket;
RightNeighbor._forwardBucket = null;
LastStepPerformed = currentStep;
return true;
}
RightNeighbor._forwardBucket = _forwardBucket;
_forwardBucket = null;
}
if (RightNeighbor._backwardBucket != null && _backwardBucket == null)
{
_backwardBucket = RightNeighbor._backwardBucket;
RightNeighbor._backwardBucket = null;
}
return false;
LastStepPerformed = currentStep;
RightNeighbor.LastStepPerformed = currentStep;
return true;
}
/// <summary>
@ -144,7 +139,45 @@ public sealed class Person
/// <param name="additionalBucket">A new bucket to use; can be null</param>
public void UseWell(Well well, Bucket? additionalBucket)
{
// TODO
// fill forward bucket if empty
if (_forwardBucket is { IsEmpty: true }) // using here pattern, bc rider suggests it
{
well.FillBucket(_forwardBucket);
}
// else fill backward bucket if empty
else if (_backwardBucket is { IsEmpty: true })
{
well.FillBucket(_backwardBucket);
// if successful, swap buckets
if (!_backwardBucket.IsEmpty)
{
_forwardBucket = _backwardBucket;
_backwardBucket = null;
}
}
// else add additional bucket
else if (additionalBucket != 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);
}
}
}
/// <summary>
@ -155,7 +188,14 @@ public sealed class Person
/// <returns>String representation of the person</returns>
public override string ToString()
{
// TODO
return string.Empty;
if (_forwardBucket != null)
{
return _forwardBucket.IsEmpty ? "🔘" : "🔵";
}
if (_backwardBucket != null)
{
return _backwardBucket.IsEmpty ? "🔘" : "🔵";
}
return "🫲";
}
}