changeDieClasses --- #62

Merged
alexis.drai merged 7 commits from changeDieClasses into main 2 years ago

@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Model.Dice.Faces;
namespace Model.Dice
{
public abstract class AbstractDie<T> where T : AbstractDieFace
{
protected string Name;
public IEnumerable<T> ListFaces => listFaces;
private readonly List<T> 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<T> GetDieFaces()
{
return (List<T>)ListFaces;
}
}
}

@ -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<ColorDieFace>
{
public ColorDie(string name, params ColorDieFace[] faces) : base(name, faces)
{
}
}
}
alexis.drai marked this conversation as resolved
Review

code duplication, this method could be implemented directly in the abstract class

code duplication, this method could be implemented directly in the abstract class

@ -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<ImageDieFace>
{
public ImageDie(string name, params ImageDieFace[] faces) : base(name, faces)
{
}
}
}

@ -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<NumberDieFace>
{
public NumberDie(string name, params NumberDieFace[] faces) : base(name, faces)
{
}
alexis.drai marked this conversation as resolved
Review

code duplication, this method could be implemented directly in the abstract class

code duplication, this method could be implemented directly in the abstract class
}
}
Loading…
Cancel
Save