simple commit
continuous-integration/drone/push Build is failing Details

pull/106/head
Ismail TAHA JANAN 3 years ago
parent 6e6f999b09
commit 1149c916c4

@ -20,8 +20,8 @@ namespace Data
gr.GlobalPlayerManager.Add(player3); gr.GlobalPlayerManager.Add(player3);
List<AbstractDie<AbstractDieFace>> monopolyDice = new(); List<HomogeneousDice> monopolyDice = new();
List<AbstractDie<AbstractDieFace>> dndDice = new(); List<HomogeneousDice> dndDice = new();
string monopolyName = "Monopoly", dndName = "DnD"; string monopolyName = "Monopoly", dndName = "DnD";

@ -5,9 +5,9 @@ using Model.Dice.Faces;
namespace Model.Dice namespace Model.Dice
{ {
public abstract class AbstractDie<T,G> : RandomnessHaver where T : AbstractDieFace<G> public abstract class AbstractDie<T> : RandomnessHaver
{ {
public IEnumerable<T> ListFaces => listFaces; public IEnumerable<AbstractDieFace<T>> ListFaces => listFaces;
private readonly List<T> listFaces = new(); private readonly List<T> listFaces = new();

@ -5,35 +5,45 @@ using System.Linq;
namespace Model.Dice namespace Model.Dice
{ {
public class DieManager : IManager<KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>>> public class DieManager : IManager<KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>>>
{ {
private readonly Dictionary<string, IEnumerable<AbstractDie<AbstractDieFace>>> diceGroups = new(); private readonly Dictionary<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>> diceGroups = new();
public KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>> Add(KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>> toAdd) public KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>> Add(KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>> toAdd)
{ {
// on trim la clé d'abord // on trim la clé d'abord
diceGroups.Add(toAdd.Key.Trim(), toAdd.Value); diceGroups.Add(toAdd.Key.Trim(), toAdd.Value);
return toAdd; return toAdd;
} }
public IEnumerable<KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>>> GetAll() public IEnumerable<KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>>> GetAll()
{ {
return diceGroups.AsEnumerable(); return diceGroups.AsEnumerable();
} }
public KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>> GetOneByName(string name) public KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>> GetOneByName(string name)
{ {
// les groupes de dés nommés : // les groupes de dés nommés :
// ils sont case-sensistive, mais "mon jeu" == "mon jeu " == " mon jeu" // ils sont case-sensistive, mais "mon jeu" == "mon jeu " == " mon jeu"
return new KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>>(name, diceGroups[name]); return new KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>>(name, diceGroups[name]);
} }
public void Remove(KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>> toRemove) public void Remove(KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>> toRemove)
{ {
diceGroups.Remove(toRemove.Key); diceGroups.Remove(toRemove.Key);
} }
public KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>> Update(KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>> before, KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>> after) /*public void Remove(KeyValuePair<string, IEnumerable<AbstractDie<Faces.AbstractDieFace<object>, object>>> toRemove)
{
throw new NotImplementedException();
}
public void Remove(KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>, object>>> toRemove)
{
throw new NotImplementedException();
}*/
public KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>> Update(KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>> before, KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>> after)
{ {
// pas autorisé de changer les dés, juste le nom // pas autorisé de changer les dés, juste le nom
if (!before.Value.Equals(after.Value)) if (!before.Value.Equals(after.Value))
@ -49,5 +59,18 @@ namespace Model.Dice
} }
return before; return before;
} }
IEnumerable<KeyValuePair<string, IEnumerable<AbstractDie<Faces.AbstractDieFace<object>, object>>>> IManager<KeyValuePair<string, IEnumerable<AbstractDie<Faces.AbstractDieFace<object>, object>>>>.GetAll()
{
throw new NotImplementedException();
}
KeyValuePair<string, IEnumerable<AbstractDie<Faces.AbstractDieFace<object>, object>>> IManager<KeyValuePair<string, IEnumerable<AbstractDie<Faces.AbstractDieFace<object>, object>>>>.GetOneByName(string name)
{
throw new NotImplementedException();
}
} }
} }

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Model.Dice.Faces;
namespace Model.Dice
{
public class HomogeneousDice: AbstractDie<AbstractDieFace<object>,object>
{
public HomogeneousDice(params AbstractDieFace<object>[] faces) : base(faces)
{
}
}
}

@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace Model.Dice namespace Model.Dice
{ {
public class ImageDie : AbstractDie<ImageDieFace,Uri> public class ImageDie : HomogeneousDice
{ {
public ImageDie(params ImageDieFace[] faces) : base(faces) public ImageDie(params ImageDieFace[] faces) : base(faces)
{ {

@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace Model.Dice namespace Model.Dice
{ {
public class NumberDie : AbstractDie<NumberDieFace,int> public class NumberDie : HomogeneousDice
{ {
public NumberDie(params NumberDieFace[] faces) : base(faces) public NumberDie(params NumberDieFace[] faces) : base(faces)
{ {

@ -57,8 +57,8 @@ namespace Model.Games
/// <summary> /// <summary>
/// the group of dice used for this game /// the group of dice used for this game
/// </summary> /// </summary>
public IEnumerable<AbstractDie<AbstractDieFace>> Dice => dice; public IEnumerable<AbstractDie<AbstractDieFace<object>,object>> Dice => dice;
private readonly IEnumerable<AbstractDie<AbstractDieFace>> dice; private readonly IEnumerable<AbstractDie<AbstractDieFace<object>, object>> dice;
/// <summary> /// <summary>
/// constructs a Game with its own history of Turns. /// constructs a Game with its own history of Turns.
@ -68,7 +68,7 @@ namespace Model.Games
/// <param name="turns">the turns that have been done so far</param> /// <param name="turns">the turns that have been done so far</param>
/// <param name="playerManager">the game's player manager, doing CRUD on players and switching whose turn it is</param> /// <param name="playerManager">the game's player manager, doing CRUD on players and switching whose turn it is</param>
/// <param name="favGroup">the group of dice used for this game</param> /// <param name="favGroup">the group of dice used for this game</param>
public Game(string name, IManager<Player> playerManager, IEnumerable<AbstractDie<AbstractDieFace>> dice, IEnumerable<Turn> turns) public Game(string name, IManager<Player> playerManager, IEnumerable<AbstractDie<AbstractDieFace<object>, object>> dice, IEnumerable<Turn> turns)
{ {
Name = name; Name = name;
PlayerManager = playerManager; PlayerManager = playerManager;
@ -83,7 +83,7 @@ namespace Model.Games
/// <param name="name">the name of the game 😎</param> /// <param name="name">the name of the game 😎</param>
/// <param name="playerManager">the game's player manager, doing CRUD on players and switching whose turn it is</param> /// <param name="playerManager">the game's player manager, doing CRUD on players and switching whose turn it is</param>
/// <param name="favGroup">the group of dice used for this game</param> /// <param name="favGroup">the group of dice used for this game</param>
public Game(string name, IManager<Player> playerManager, IEnumerable<AbstractDie<AbstractDieFace>> dice) public Game(string name, IManager<Player> playerManager, IEnumerable<AbstractDie<AbstractDieFace<object>, object>> dice)
: this(name, playerManager, dice, null) : this(name, playerManager, dice, null)
{ } { }

@ -12,17 +12,17 @@ namespace Model.Games
public class GameRunner : IManager<Game> public class GameRunner : IManager<Game>
{ {
public IManager<Player> GlobalPlayerManager { get; private set; } public IManager<Player> GlobalPlayerManager { get; private set; }
public IManager<KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>>> GlobalDieManager { get; private set; } public IManager<KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>>> GlobalDieManager { get; private set; }
private readonly List<Game> games; private readonly List<Game> games;
public GameRunner(IManager<Player> globalPlayerManager, IManager<KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>>> globalDieManager, List<Game> games) public GameRunner(IManager<Player> globalPlayerManager, IManager<KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>>> globalDieManager, List<Game> games)
{ {
GlobalPlayerManager = globalPlayerManager; GlobalPlayerManager = globalPlayerManager;
GlobalDieManager = globalDieManager; GlobalDieManager = globalDieManager;
this.games = games ?? new(); this.games = games ?? new();
} }
public GameRunner(IManager<Player> globalPlayerManager, IManager<KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace>>>> globalDieManager) public GameRunner(IManager<Player> globalPlayerManager, IManager<KeyValuePair<string, IEnumerable<AbstractDie<AbstractDieFace<object>,object>>>> globalDieManager)
: this(globalPlayerManager, globalDieManager, null){ } : this(globalPlayerManager, globalDieManager, null){ }
@ -65,7 +65,7 @@ namespace Model.Games
/// <summary> /// <summary>
/// creates a new game /// creates a new game
/// </summary> /// </summary>
public Game StartNewGame(string name, IManager<Player> playerManager, IEnumerable<AbstractDie<AbstractDieFace>> dice) public Game StartNewGame(string name, IManager<Player> playerManager, IEnumerable<AbstractDie<AbstractDieFace<object>,object>> dice)
{ {
Game game = new(name, playerManager, dice); Game game = new(name, playerManager, dice);
return Add(game); return Add(game);

Loading…
Cancel
Save