diff --git a/Sources/Data/Stub.cs b/Sources/Data/Stub.cs index 701eb9b..7896c10 100644 --- a/Sources/Data/Stub.cs +++ b/Sources/Data/Stub.cs @@ -29,16 +29,16 @@ namespace Data return list; } - public static List LoadDices() + public static List LoadDices() { - List list = new() + List list = new() { - new Die("Dice 1"), - new Die("Dice 1"), - new Die("Dice 1"), - new Die("Dice 1"), - new Die("Dice 1"), - new Die("Dice 1") + new AbstractDie("Dice 1"), + new AbstractDie("Dice 1"), + new AbstractDie("Dice 1"), + new AbstractDie("Dice 1"), + new AbstractDie("Dice 1"), + new AbstractDie("Dice 1") }; return list; diff --git a/Sources/Model/AbstractDie.cs b/Sources/Model/AbstractDie.cs new file mode 100644 index 0000000..88a3df8 --- /dev/null +++ b/Sources/Model/AbstractDie.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; + +namespace Model +{ + public abstract class AbstractDie where T : AbstractDieFace + { + protected string Name; + public IEnumerable ListFaces => listFaces; + + private readonly List listFaces =new(); + + public AbstractDie(string name, params T[] faces) + { + this.Name = name; + listFaces.AddRange(faces) ; + } + + + + public string GetName() => Name; + + public abstract AbstractDieFace GetRandomFace(); + + public List GetDieFaces() + { + return (List)ListFaces; + } + + } +} diff --git a/Sources/Model/ColorDie.cs b/Sources/Model/ColorDie.cs new file mode 100644 index 0000000..191e66a --- /dev/null +++ b/Sources/Model/ColorDie.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model +{ + public class ColorDie : AbstractDie + { + public ColorDie(string name, params ColorDieFace[] faces) : base(name, faces) + { + } + + public override AbstractDieFace GetRandomFace() + { + Random rnd = new(); + int faceIndex = rnd.Next(1, ListFaces.Count() + 1); + return ListFaces.ElementAt(faceIndex); + } + } +} diff --git a/Sources/Model/Die.cs b/Sources/Model/Die.cs deleted file mode 100644 index 4074712..0000000 --- a/Sources/Model/Die.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace Model -{ - public class Die - { - private readonly string _name; - - public Die(string name) - { - _name = name; - } - - public string Name => _name; - } -} diff --git a/Sources/Model/ImageDie.cs b/Sources/Model/ImageDie.cs new file mode 100644 index 0000000..2daf6bb --- /dev/null +++ b/Sources/Model/ImageDie.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model +{ + public class ImageDie : AbstractDie + { + + public ImageDie(string name, params ImageDieFace[] faces) : base(name, faces) + { + } + public override ImageDieFace GetRandomFace() + { + Random rnd = new(); + int faceIndex = rnd.Next(1, ListFaces.Count() + 1); + return ListFaces.ElementAt(faceIndex); + } + } +} diff --git a/Sources/Model/NumberDie.cs b/Sources/Model/NumberDie.cs new file mode 100644 index 0000000..211ac15 --- /dev/null +++ b/Sources/Model/NumberDie.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model +{ + public class NumberDie : AbstractDie + { + + public NumberDie(string name, params NumberDieFace[] faces ) : base(name,faces) + { + } + public override NumberDieFace GetRandomFace() + { + Random rnd = new(); + int faceIndex = rnd.Next(1, ListFaces.Count()+1); + return ListFaces.ElementAt(faceIndex); + + } + } +} diff --git a/Sources/Tests/Model_UTs/DieTest.cs b/Sources/Tests/Model_UTs/DieTest.cs index b2ea67f..9b42ce0 100644 --- a/Sources/Tests/Model_UTs/DieTest.cs +++ b/Sources/Tests/Model_UTs/DieTest.cs @@ -8,7 +8,7 @@ namespace Tests.Model_UTs [Fact] public void TestConstructor() { - Die die = new Die("Ben"); + AbstractDie die = new AbstractDie("Ben"); Assert.Equal("Ben", die.Name); } }