From aaa94de3620fca830d16daff4bfdd6914cc1a9f0 Mon Sep 17 00:00:00 2001 From: Alexis DRAI Date: Sat, 24 Sep 2022 17:33:43 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8F=97=EF=B8=8F=20Fix=20#67?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/Data/Stub.cs | 15 ++++++---- Sources/Model/Dice/Die.cs | 22 -------------- Sources/Model/Dice/DieManager.cs | 32 +++++++++++++++++++-- Sources/Model/Dice/Faces/AbstractDieFace.cs | 5 ++++ Sources/Model/Dice/Faces/ColorDieFace.cs | 5 ---- Sources/Model/Dice/Faces/ImageDieFace.cs | 5 ---- Sources/Model/Dice/Faces/NumberDieFace.cs | 5 ---- Sources/Model/Dice/FavGroup.cs | 13 --------- Sources/Model/Dice/FavGroupManager.cs | 21 -------------- Sources/Model/Games/Game.cs | 14 ++++----- Sources/Model/Games/GameRunner.cs | 6 ++-- 11 files changed, 54 insertions(+), 89 deletions(-) delete mode 100644 Sources/Model/Dice/Die.cs delete mode 100644 Sources/Model/Dice/FavGroup.cs delete mode 100644 Sources/Model/Dice/FavGroupManager.cs diff --git a/Sources/Data/Stub.cs b/Sources/Data/Stub.cs index e1dce10..2728ace 100644 --- a/Sources/Data/Stub.cs +++ b/Sources/Data/Stub.cs @@ -2,6 +2,7 @@ using Model.Dice.Faces; using Model.Games; using Model.Players; +using System.Collections.Generic; namespace Data { @@ -18,14 +19,18 @@ namespace Data Player player1 = new("Alice"), player2 = new("Bob"), player3 = new("Clyde"); - FavGroupManager favGroupManager = new(new DieManager()); + DieManager globalDieManager = new DieManager(); // create at least one fav group in there // ... + IEnumerable> dice1; + (_, dice1) = globalDieManager.GetAll().First(); + IEnumerable> dice2; + (_, dice2) = globalDieManager.GetAll().Last(); - Game game1 = new(name: g1, playerManager: new PlayerManager(), favGroup: favGroupManager.GetAll().First()); - Game game2 = new(name: g2, playerManager: new PlayerManager(), favGroup: favGroupManager.GetAll().Last()); - Game game3 = new(name: g3, playerManager: new PlayerManager(), favGroup: favGroupManager.GetAll().First()); + Game game1 = new(name: g1, playerManager: new PlayerManager(), dice: dice1); + Game game2 = new(name: g2, playerManager: new PlayerManager(), dice: dice2); + Game game3 = new(name: g3, playerManager: new PlayerManager(), dice: dice1); List games = new() { game1, game2, game3 }; @@ -34,7 +39,7 @@ namespace Data globalPlayerManager.Add(player2); globalPlayerManager.Add(player3); - GameRunner gameRunner = new(globalPlayerManager, favGroupManager, games); + GameRunner gameRunner = new(globalPlayerManager, globalDieManager, games); game1.AddPlayerToGame(player1); game1.AddPlayerToGame(player2); diff --git a/Sources/Model/Dice/Die.cs b/Sources/Model/Dice/Die.cs deleted file mode 100644 index 7f2314a..0000000 --- a/Sources/Model/Dice/Die.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using Model.Dice.Faces; - -namespace Model.Dice -{ - public class Die - { - private static readonly Random random = new Random(); - - private List faces; - - public AbstractDieFace Throw() - { - // next(x, y) --> [x, y[ - return faces[random.Next(0, faces.Count)]; - // replace with better algo later - } - } - - -} diff --git a/Sources/Model/Dice/DieManager.cs b/Sources/Model/Dice/DieManager.cs index 200ea6b..b6d1812 100644 --- a/Sources/Model/Dice/DieManager.cs +++ b/Sources/Model/Dice/DieManager.cs @@ -1,9 +1,35 @@ -using System.Collections.Generic; +using Model.Dice.Faces; +using System.Collections.Generic; namespace Model.Dice { - public class DieManager + public class DieManager : IManager<(string, IEnumerable>)> { - private readonly IEnumerable dice = new List(); + private readonly List<(string name, IEnumerable> dice)> diceGroups = new(); + + public (string, IEnumerable>) Add((string, IEnumerable>) toAdd) + { + throw new System.NotImplementedException(); + } + + public IEnumerable<(string, IEnumerable>)> GetAll() + { + throw new System.NotImplementedException(); + } + + public (string, IEnumerable>) GetOneById(int id) + { + throw new System.NotImplementedException(); + } + + public void Remove((string, IEnumerable>) toRemove) + { + throw new System.NotImplementedException(); + } + + public (string, IEnumerable>) Update((string, IEnumerable>) before, (string, IEnumerable>) after) + { + throw new System.NotImplementedException(); + } } } diff --git a/Sources/Model/Dice/Faces/AbstractDieFace.cs b/Sources/Model/Dice/Faces/AbstractDieFace.cs index a8071c3..a3f5364 100644 --- a/Sources/Model/Dice/Faces/AbstractDieFace.cs +++ b/Sources/Model/Dice/Faces/AbstractDieFace.cs @@ -17,5 +17,10 @@ namespace Model.Dice.Faces protected abstract int Value { get; } public abstract object GetPracticalValue(); + + public override string ToString() + { + return GetPracticalValue().ToString(); + } } } diff --git a/Sources/Model/Dice/Faces/ColorDieFace.cs b/Sources/Model/Dice/Faces/ColorDieFace.cs index 2c8fe12..2d7e450 100644 --- a/Sources/Model/Dice/Faces/ColorDieFace.cs +++ b/Sources/Model/Dice/Faces/ColorDieFace.cs @@ -40,10 +40,5 @@ namespace Model.Dice.Faces // maybe prepend it with a "#"... return Value.ToString("X6").Insert(0, "#"); } - - public override string ToString() - { - return GetPracticalValue().ToString(); - } } } diff --git a/Sources/Model/Dice/Faces/ImageDieFace.cs b/Sources/Model/Dice/Faces/ImageDieFace.cs index e33aa95..966832c 100644 --- a/Sources/Model/Dice/Faces/ImageDieFace.cs +++ b/Sources/Model/Dice/Faces/ImageDieFace.cs @@ -31,10 +31,5 @@ namespace Model.Dice.Faces { return string.Format("Assets/images/{0}", Value); } - - public override string ToString() - { - return GetPracticalValue().ToString(); - } } } diff --git a/Sources/Model/Dice/Faces/NumberDieFace.cs b/Sources/Model/Dice/Faces/NumberDieFace.cs index 82cd950..0e236a9 100644 --- a/Sources/Model/Dice/Faces/NumberDieFace.cs +++ b/Sources/Model/Dice/Faces/NumberDieFace.cs @@ -18,10 +18,5 @@ namespace Model.Dice.Faces { return Value; } - - public override string ToString() - { - return GetPracticalValue().ToString(); - } } } diff --git a/Sources/Model/Dice/FavGroup.cs b/Sources/Model/Dice/FavGroup.cs deleted file mode 100644 index b718e38..0000000 --- a/Sources/Model/Dice/FavGroup.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Model.Players; -using System.Collections.Generic; - -namespace Model.Dice -{ - public class FavGroup - { - public IEnumerable Dice { get; private set; } - - public string Name { get; private set; } - - } -} diff --git a/Sources/Model/Dice/FavGroupManager.cs b/Sources/Model/Dice/FavGroupManager.cs deleted file mode 100644 index 4fcf5d3..0000000 --- a/Sources/Model/Dice/FavGroupManager.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Model.Players; -using System.Collections.Generic; -using System.Linq; - -namespace Model.Dice -{ - public class FavGroupManager - { - private readonly List favGroups = new(); - - private readonly DieManager dieManager; - - public FavGroupManager(DieManager dieManager) - { - this.dieManager = dieManager; - } - - public IEnumerable GetAll() => favGroups.AsEnumerable(); - - } -} diff --git a/Sources/Model/Games/Game.cs b/Sources/Model/Games/Game.cs index 2ee0a41..326aa80 100644 --- a/Sources/Model/Games/Game.cs +++ b/Sources/Model/Games/Game.cs @@ -56,7 +56,7 @@ namespace Model.Games /// /// the group of dice used for this game /// - private readonly FavGroup favGroup; + private readonly IEnumerable> dice; /// /// constructs a Game with its own history of Turns. @@ -66,12 +66,12 @@ namespace Model.Games /// the turns that have been done so far /// the game's player manager, doing CRUD on players and switching whose turn it is /// the group of dice used for this game - public Game(string name, PlayerManager playerManager, FavGroup favGroup, IEnumerable turns) + public Game(string name, PlayerManager playerManager, IEnumerable> dice, IEnumerable turns) { Name = name; this.turns = turns.ToList() ?? new List(); this.playerManager = playerManager; - this.favGroup = favGroup; + this.dice = dice; } /// @@ -80,8 +80,8 @@ namespace Model.Games /// the name of the game 😎 /// the game's player manager, doing CRUD on players and switching whose turn it is /// the group of dice used for this game - public Game(string name, PlayerManager playerManager, FavGroup favGroup) - : this(name, playerManager, favGroup, null) + public Game(string name, PlayerManager playerManager, IEnumerable> dice) + : this(name, playerManager, dice, null) { } /// @@ -114,9 +114,9 @@ namespace Model.Games private List ThrowAll() { List faces = new(); - foreach (Die die in favGroup.Dice) + foreach (AbstractDie die in dice) { - faces.Add(die.Throw()); + faces.Add(die.GetRandomFace()); } return faces; } diff --git a/Sources/Model/Games/GameRunner.cs b/Sources/Model/Games/GameRunner.cs index c2a3cd3..035a96b 100644 --- a/Sources/Model/Games/GameRunner.cs +++ b/Sources/Model/Games/GameRunner.cs @@ -11,13 +11,13 @@ namespace Model.Games public class GameRunner { private readonly PlayerManager globalPlayerManager; - private readonly FavGroupManager favGroupManager; + private readonly DieManager globalDieManager; private readonly List games; - public GameRunner(PlayerManager globalPlayerManager, FavGroupManager favGroupManager, List games) + public GameRunner(PlayerManager globalPlayerManager, DieManager globalDieManager, List games) { this.globalPlayerManager = globalPlayerManager; - this.favGroupManager = favGroupManager; + this.globalDieManager = globalDieManager; this.games = games ?? new(); }