From 306315c2ffade074a8fbf198b83dbf232c16c637 Mon Sep 17 00:00:00 2001 From: Ismail TAHA JANAN Date: Fri, 23 Sep 2022 16:36:03 +0200 Subject: [PATCH 1/6] :zap: #59 feat:Die become abstract & add dice tipes as children --- Sources/Data/Stub.cs | 16 ++++++++-------- Sources/Model/AbstractDie.cs | 30 ++++++++++++++++++++++++++++++ Sources/Model/ColorDie.cs | 24 ++++++++++++++++++++++++ Sources/Model/Die.cs | 14 -------------- Sources/Model/ImageDie.cs | 22 ++++++++++++++++++++++ Sources/Model/NumberDie.cs | 23 +++++++++++++++++++++++ Sources/Tests/Model_UTs/DieTest.cs | 2 +- 7 files changed, 108 insertions(+), 23 deletions(-) create mode 100644 Sources/Model/AbstractDie.cs create mode 100644 Sources/Model/ColorDie.cs delete mode 100644 Sources/Model/Die.cs create mode 100644 Sources/Model/ImageDie.cs create mode 100644 Sources/Model/NumberDie.cs 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); } } -- 2.36.3 From da6babe2dd1016339cb57038a0edb787e3472ade Mon Sep 17 00:00:00 2001 From: Ismail TAHA JANAN Date: Fri, 23 Sep 2022 16:55:16 +0200 Subject: [PATCH 2/6] =?UTF-8?q?#59=20:=20=EF=BF=BD:adhesive=5Fbandage:=20f?= =?UTF-8?q?ix:=20more=20conflict=20fixing?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/Data/Stub.cs | 18 ------------------ Sources/Model/{ => Dice}/AbstractDie.cs | 10 +++++----- Sources/Model/{ => Dice}/ColorDie.cs | 2 +- Sources/Model/{ => Dice}/ImageDie.cs | 2 +- Sources/Model/{ => Dice}/NumberDie.cs | 6 +++--- 5 files changed, 10 insertions(+), 28 deletions(-) rename Sources/Model/{ => Dice}/AbstractDie.cs (69%) rename Sources/Model/{ => Dice}/ColorDie.cs (96%) rename Sources/Model/{ => Dice}/ImageDie.cs (96%) rename Sources/Model/{ => Dice}/NumberDie.cs (79%) diff --git a/Sources/Data/Stub.cs b/Sources/Data/Stub.cs index ace25d7..e1dce10 100644 --- a/Sources/Data/Stub.cs +++ b/Sources/Data/Stub.cs @@ -73,24 +73,6 @@ namespace Data return list; } -<<<<<<< HEAD - public static List LoadDices() - { - List list = new() - { - 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; - } - -======= ->>>>>>> main public static List LoadNumFaces() { List list = new() diff --git a/Sources/Model/AbstractDie.cs b/Sources/Model/Dice/AbstractDie.cs similarity index 69% rename from Sources/Model/AbstractDie.cs rename to Sources/Model/Dice/AbstractDie.cs index 88a3df8..7f35fad 100644 --- a/Sources/Model/AbstractDie.cs +++ b/Sources/Model/Dice/AbstractDie.cs @@ -1,18 +1,18 @@ using System.Collections.Generic; -namespace Model +namespace Model.Dice { public abstract class AbstractDie where T : AbstractDieFace { protected string Name; - public IEnumerable ListFaces => listFaces; + public IEnumerable ListFaces => listFaces; - private readonly List listFaces =new(); + private readonly List listFaces = new(); public AbstractDie(string name, params T[] faces) { - this.Name = name; - listFaces.AddRange(faces) ; + Name = name; + listFaces.AddRange(faces); } diff --git a/Sources/Model/ColorDie.cs b/Sources/Model/Dice/ColorDie.cs similarity index 96% rename from Sources/Model/ColorDie.cs rename to Sources/Model/Dice/ColorDie.cs index 191e66a..d997c25 100644 --- a/Sources/Model/ColorDie.cs +++ b/Sources/Model/Dice/ColorDie.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Model +namespace Model.Dice { public class ColorDie : AbstractDie { diff --git a/Sources/Model/ImageDie.cs b/Sources/Model/Dice/ImageDie.cs similarity index 96% rename from Sources/Model/ImageDie.cs rename to Sources/Model/Dice/ImageDie.cs index 2daf6bb..222473b 100644 --- a/Sources/Model/ImageDie.cs +++ b/Sources/Model/Dice/ImageDie.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Model +namespace Model.Dice { public class ImageDie : AbstractDie { diff --git a/Sources/Model/NumberDie.cs b/Sources/Model/Dice/NumberDie.cs similarity index 79% rename from Sources/Model/NumberDie.cs rename to Sources/Model/Dice/NumberDie.cs index 211ac15..e58bd13 100644 --- a/Sources/Model/NumberDie.cs +++ b/Sources/Model/Dice/NumberDie.cs @@ -4,18 +4,18 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Model +namespace Model.Dice { public class NumberDie : AbstractDie { - public NumberDie(string name, params NumberDieFace[] faces ) : base(name,faces) + 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); + int faceIndex = rnd.Next(1, ListFaces.Count() + 1); return ListFaces.ElementAt(faceIndex); } -- 2.36.3 From 8a81f2ddd76c2bd4dfb20605b393dd9800041774 Mon Sep 17 00:00:00 2001 From: Ismail TAHA JANAN Date: Fri, 23 Sep 2022 17:08:58 +0200 Subject: [PATCH 3/6] :adhesive_bandage: #59 fix: add some name spaces --- Sources/Model/Dice/AbstractDie.cs | 1 + Sources/Model/Dice/NumberDie.cs | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Sources/Model/Dice/AbstractDie.cs b/Sources/Model/Dice/AbstractDie.cs index 7f35fad..bc0b8c7 100644 --- a/Sources/Model/Dice/AbstractDie.cs +++ b/Sources/Model/Dice/AbstractDie.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using Model.Dice.Faces; namespace Model.Dice { diff --git a/Sources/Model/Dice/NumberDie.cs b/Sources/Model/Dice/NumberDie.cs index e58bd13..08df177 100644 --- a/Sources/Model/Dice/NumberDie.cs +++ b/Sources/Model/Dice/NumberDie.cs @@ -1,4 +1,5 @@ -using System; +using Model.Dice.Faces; +using System; using System.Collections.Generic; using System.Linq; using System.Text; -- 2.36.3 From 9292a2cc44eb7363686eb46eaac5fd7615aaef62 Mon Sep 17 00:00:00 2001 From: Ismail TAHA JANAN Date: Fri, 23 Sep 2022 17:42:43 +0200 Subject: [PATCH 4/6] :adhesive_bandage: #59 : some name spaces --- Sources/Model/Dice/ColorDie.cs | 3 ++- Sources/Model/Dice/ImageDie.cs | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Sources/Model/Dice/ColorDie.cs b/Sources/Model/Dice/ColorDie.cs index d997c25..632af98 100644 --- a/Sources/Model/Dice/ColorDie.cs +++ b/Sources/Model/Dice/ColorDie.cs @@ -1,4 +1,5 @@ -using System; +using Model.Dice.Faces; +using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; diff --git a/Sources/Model/Dice/ImageDie.cs b/Sources/Model/Dice/ImageDie.cs index 222473b..b14f2ae 100644 --- a/Sources/Model/Dice/ImageDie.cs +++ b/Sources/Model/Dice/ImageDie.cs @@ -1,4 +1,5 @@ -using System; +using Model.Dice.Faces; +using System; using System.Collections.Generic; using System.Linq; using System.Text; -- 2.36.3 From 344a0fb9ac2bef9d757ef1bc63a39efbedf425d2 Mon Sep 17 00:00:00 2001 From: Ismail TAHA JANAN Date: Sat, 24 Sep 2022 12:39:56 +0200 Subject: [PATCH 5/6] :art: improve code performance --- Sources/Model/Dice/AbstractDie.cs | 14 +++++++++++--- Sources/Model/Dice/ColorDie.cs | 7 ------- Sources/Model/Dice/ImageDie.cs | 7 +------ Sources/Model/Dice/NumberDie.cs | 6 ------ Sources/Tests/Model_UTs/DieTest.cs | 15 --------------- 5 files changed, 12 insertions(+), 37 deletions(-) delete mode 100644 Sources/Tests/Model_UTs/DieTest.cs diff --git a/Sources/Model/Dice/AbstractDie.cs b/Sources/Model/Dice/AbstractDie.cs index bc0b8c7..737347e 100644 --- a/Sources/Model/Dice/AbstractDie.cs +++ b/Sources/Model/Dice/AbstractDie.cs @@ -1,4 +1,6 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; +using System.Linq; using Model.Dice.Faces; namespace Model.Dice @@ -10,7 +12,9 @@ namespace Model.Dice private readonly List listFaces = new(); - public AbstractDie(string name, params T[] faces) + private readonly Random rnd = new(); + + protected AbstractDie(string name, params T[] faces) { Name = name; listFaces.AddRange(faces); @@ -20,7 +24,11 @@ namespace Model.Dice public string GetName() => Name; - public abstract AbstractDieFace GetRandomFace(); + public T GetRandomFace() + { + int faceIndex = rnd.Next(1, ListFaces.Count() + 1); + return ListFaces.ElementAt(faceIndex); + } public List GetDieFaces() { diff --git a/Sources/Model/Dice/ColorDie.cs b/Sources/Model/Dice/ColorDie.cs index 632af98..8a28ce9 100644 --- a/Sources/Model/Dice/ColorDie.cs +++ b/Sources/Model/Dice/ColorDie.cs @@ -14,12 +14,5 @@ namespace Model.Dice 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/Dice/ImageDie.cs b/Sources/Model/Dice/ImageDie.cs index b14f2ae..aa4ebe5 100644 --- a/Sources/Model/Dice/ImageDie.cs +++ b/Sources/Model/Dice/ImageDie.cs @@ -13,11 +13,6 @@ namespace Model.Dice 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/Dice/NumberDie.cs b/Sources/Model/Dice/NumberDie.cs index 08df177..ee61add 100644 --- a/Sources/Model/Dice/NumberDie.cs +++ b/Sources/Model/Dice/NumberDie.cs @@ -13,12 +13,6 @@ namespace Model.Dice 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 deleted file mode 100644 index e4ef9f7..0000000 --- a/Sources/Tests/Model_UTs/DieTest.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Model; -using Xunit; - -namespace Tests.Model_UTs -{ - public class DieTest - { - [Fact] - public void TestConstructor() - { - //AbstractDie die = new AbstractDie("Ben"); - //Assert.Equal("Ben", die.Name); - } - } -} -- 2.36.3 From 5a76434f962abed413f7d95b0d58b4db192d3d56 Mon Sep 17 00:00:00 2001 From: Ismail TAHA JANAN Date: Sat, 24 Sep 2022 13:17:51 +0200 Subject: [PATCH 6/6] :art: chanege Random type to static --- Sources/Model/Dice/AbstractDie.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Model/Dice/AbstractDie.cs b/Sources/Model/Dice/AbstractDie.cs index 737347e..4f403ca 100644 --- a/Sources/Model/Dice/AbstractDie.cs +++ b/Sources/Model/Dice/AbstractDie.cs @@ -12,7 +12,7 @@ namespace Model.Dice private readonly List listFaces = new(); - private readonly Random rnd = new(); + private static readonly Random rnd = new(); protected AbstractDie(string name, params T[] faces) { -- 2.36.3