Person works
This commit is contained in:
parent
0f1420367d
commit
1c5a634afb
1 changed files with 59 additions and 19 deletions
|
|
@ -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 "🫲";
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue