Add Bug and conecpt of completeness

This commit is contained in:
Andrew Cooper
2022-07-12 07:41:45 +10:00
parent 6078da8c78
commit be9f0a92f8
8 changed files with 26 additions and 0 deletions

13
16_Bug/csharp/Bug.cs Normal file
View File

@@ -0,0 +1,13 @@
using BugGame.Parts;
using BugGame.Resources;
namespace BugGame;
internal class Bug
{
private readonly Body _body = new();
public bool IsComplete => _body.IsComplete;
public bool TryAdd(IPart part, out Message message) => _body.TryAdd(part, out message);
}

View File

@@ -13,6 +13,8 @@ internal class Body : ParentPart
{
}
public override bool IsComplete => _neck.IsComplete && _tail.IsComplete && _legs.IsComplete;
protected override bool TryAddCore(IPart part, out Message message)
=> part switch
{

View File

@@ -11,6 +11,8 @@ internal class Head : ParentPart
{
}
public override bool IsComplete => _feelers.IsComplete;
protected override bool TryAddCore(IPart part, out Message message)
=> part switch
{

View File

@@ -3,4 +3,5 @@ namespace BugGame.Parts;
internal interface IPart
{
string Name { get; }
bool IsComplete { get; }
}

View File

@@ -11,6 +11,8 @@ internal class Neck : ParentPart
{
}
public override bool IsComplete => _head.IsComplete;
protected override bool TryAddCore(IPart part, out Message message)
=> part switch
{

View File

@@ -13,6 +13,8 @@ internal class Part
_duplicateMessage = duplicateMessage;
}
public virtual bool IsComplete => IsPresent;
protected bool IsPresent { get; private set; }
public string Name => GetType().Name;

View File

@@ -16,6 +16,8 @@ internal class PartCollection
_fullMessage = fullMessage;
}
public bool IsComplete => _count == _maxCount;
public bool TryAddOne(out Message message)
{
if (_count < _maxCount)

View File

@@ -1,3 +1,5 @@
using BugGame.Parts;
namespace BugGame.Resources;
internal class Message