using System; using System.Collections.Generic; using System.Linq; using Model.Dice.Faces; namespace Model.Dice { public abstract class AbstractDie : RandomnessHaver where T : AbstractDieFace { public IEnumerable ListFaces => listFaces; private readonly List listFaces = new(); protected AbstractDie(params T[] faces) { listFaces.AddRange(faces); } public T GetRandomFace() { int faceIndex = rnd.Next(1, ListFaces.Count() + 1); return ListFaces.ElementAt(faceIndex); } } }