diff --git a/Sources/Model/Dice/AbstractDie.cs b/Sources/Model/Dice/AbstractDie.cs new file mode 100644 index 0000000..4f403ca --- /dev/null +++ b/Sources/Model/Dice/AbstractDie.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Model.Dice.Faces; + +namespace Model.Dice +{ + public abstract class AbstractDie where T : AbstractDieFace + { + protected string Name; + public IEnumerable ListFaces => listFaces; + + private readonly List listFaces = new(); + + private static readonly Random rnd = new(); + + protected AbstractDie(string name, params T[] faces) + { + Name = name; + listFaces.AddRange(faces); + } + + + + public string GetName() => Name; + + public T GetRandomFace() + { + int faceIndex = rnd.Next(1, ListFaces.Count() + 1); + return ListFaces.ElementAt(faceIndex); + } + + public List GetDieFaces() + { + return (List)ListFaces; + } + + } +} diff --git a/Sources/Model/Dice/ColorDie.cs b/Sources/Model/Dice/ColorDie.cs new file mode 100644 index 0000000..8a28ce9 --- /dev/null +++ b/Sources/Model/Dice/ColorDie.cs @@ -0,0 +1,18 @@ +using Model.Dice.Faces; +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.Dice +{ + public class ColorDie : AbstractDie + { + public ColorDie(string name, params ColorDieFace[] faces) : base(name, faces) + { + } + } +} diff --git a/Sources/Model/Dice/ImageDie.cs b/Sources/Model/Dice/ImageDie.cs new file mode 100644 index 0000000..aa4ebe5 --- /dev/null +++ b/Sources/Model/Dice/ImageDie.cs @@ -0,0 +1,18 @@ +using Model.Dice.Faces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model.Dice +{ + public class ImageDie : AbstractDie + { + + public ImageDie(string name, params ImageDieFace[] faces) : base(name, faces) + { + } + + } +} diff --git a/Sources/Model/Dice/NumberDie.cs b/Sources/Model/Dice/NumberDie.cs new file mode 100644 index 0000000..ee61add --- /dev/null +++ b/Sources/Model/Dice/NumberDie.cs @@ -0,0 +1,18 @@ +using Model.Dice.Faces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model.Dice +{ + public class NumberDie : AbstractDie + { + + public NumberDie(string name, params NumberDieFace[] faces) : base(name, faces) + { + } + + } +}