From 7a2336e933747680a1087367015e17745958adac Mon Sep 17 00:00:00 2001 From: "zakariya.saoula" Date: Tue, 28 Feb 2023 13:12:45 +0100 Subject: [PATCH] model pour API et EF --- Sources/Model/Case.cs | 31 +++++++++++++++++++++++ Sources/Model/Class1.cs | 6 ----- Sources/Model/Game.cs | 52 +++++++++++++++++++++++++++++++++++++++ Sources/Model/GameMode.cs | 30 ++++++++++++++++++++++ Sources/Model/Grille.cs | 26 ++++++++++++++++++++ Sources/Model/Player.cs | 39 +++++++++++++++++++++++++++++ Sources/Model/Stats.cs | 26 ++++++++++++++++++++ Sources/Model/Turn.cs | 45 +++++++++++++++++++++++++++++++++ 8 files changed, 249 insertions(+), 6 deletions(-) create mode 100644 Sources/Model/Case.cs delete mode 100644 Sources/Model/Class1.cs create mode 100644 Sources/Model/Game.cs create mode 100644 Sources/Model/GameMode.cs create mode 100644 Sources/Model/Grille.cs create mode 100644 Sources/Model/Player.cs create mode 100644 Sources/Model/Stats.cs create mode 100644 Sources/Model/Turn.cs diff --git a/Sources/Model/Case.cs b/Sources/Model/Case.cs new file mode 100644 index 0000000..18f2ca3 --- /dev/null +++ b/Sources/Model/Case.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model +{ + public class Case + { + public int Valeur + { + get => valeur; + set + { + //pas évolutif car case dangereuse c'est 6 MAX + if (value > 12) + { + throw new ArgumentException("a Case must have a value lower or equal to 12"); + } + valeur = value; + } + } + private int valeur; + + public Case(int valeur) + { + Valeur = valeur; + } + } +} diff --git a/Sources/Model/Class1.cs b/Sources/Model/Class1.cs deleted file mode 100644 index 3228c6d..0000000 --- a/Sources/Model/Class1.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Model; -public class Class1 -{ - -} - diff --git a/Sources/Model/Game.cs b/Sources/Model/Game.cs new file mode 100644 index 0000000..985d0f3 --- /dev/null +++ b/Sources/Model/Game.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model +{ + public class Game + { + public TimeSpan Duration { get; set; } + public DateOnly Date { get; set; } + public ReadOnlyCollection Players { get; private set; } + private List players = new(); + + public ReadOnlyCollection Turns { get; private set; } + private List turns = new(); + + public ReadOnlyDictionary Grilles { get; private set; } + private readonly Dictionary grilles = new Dictionary(); + + public ReadOnlyDictionary Scores { get; private set; } + private readonly Dictionary scores = new Dictionary(); + + public GameMode GameMode { get; set; } + + //public Grille Grille + //{ + // get => grille; + // private init + // { + // if (value == null) + // throw new ArgumentNullException("A grid can't be null for a game"); + // grille = value; + // } + //} + //private Grille grille; + + public Game(TimeSpan duration, DateOnly date, Dictionary grilles, Dictionary scores, List turns, GameMode gameMode) + { + Players = players.AsReadOnly(); + Duration = duration; + Date = date; + Grilles = new ReadOnlyDictionary(grilles); + Scores = new ReadOnlyDictionary(scores); + Turns = turns.AsReadOnly(); + GameMode = gameMode; + + } + } +} diff --git a/Sources/Model/GameMode.cs b/Sources/Model/GameMode.cs new file mode 100644 index 0000000..0aadd1b --- /dev/null +++ b/Sources/Model/GameMode.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model +{ + public class GameMode + { + public string Name + { + get => name; + set + { + if (value == null) + { + throw new ArgumentException("A GameMode's name cannot be null"); + } + name = value; + } + } + private string name = ""; + + public GameMode(string name) + { + Name = name; + } + } +} diff --git a/Sources/Model/Grille.cs b/Sources/Model/Grille.cs new file mode 100644 index 0000000..fda42b8 --- /dev/null +++ b/Sources/Model/Grille.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model +{ + public class Grille + { + public int NbChaine { get; set; } + public int NbZone { get; set; } + public int MaxChaine { get; set; } + public int MaxZone { get; set; } + + public ReadOnlyCollection Cases { get; private set; } + private List cases = new(); + + + public Grille(List cases) + { + Cases = cases.AsReadOnly(); + } + } +} diff --git a/Sources/Model/Player.cs b/Sources/Model/Player.cs new file mode 100644 index 0000000..f68fd70 --- /dev/null +++ b/Sources/Model/Player.cs @@ -0,0 +1,39 @@ +namespace Model; +//public class Player : IEquatable + public class Player +{ + public string Pseudo + { + get => pseudo; + set + { + if (value == null) + { + pseudo = ""; + return; + } + pseudo = value; + } + } + private string pseudo = ""; + + public Stats Stats { get; set; } + + public Player(string pseudo) + { + Pseudo = pseudo; + Stats = new Stats(); + } + + //nécessaire ? + //public bool Equals(Player? other) + // => Pseudo.Equals(other?.Pseudo); + + //997 ou un autre chiffre, à voir + //public override int GetHashCode() + // => Pseudo.GetHashCode() % 997; + + //public override string ToString() + // => $"{Pseudo}"; +} + diff --git a/Sources/Model/Stats.cs b/Sources/Model/Stats.cs new file mode 100644 index 0000000..c706cff --- /dev/null +++ b/Sources/Model/Stats.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model +{ + public class Stats + { + public int NbWin { get; set; } = 0; + public int NbPlayed { get; set; } = 0; + public int MaxChain { get; set; } = 0; + public int MaxZone { get; set; } = 0; + public int MaxPoints { get; set; } = 0; + + + public Stats() + { + + } + + public override string ToString() + => $"{NbWin} {NbPlayed} {MaxChain} {MaxZone} {MaxZone}"; + } +} diff --git a/Sources/Model/Turn.cs b/Sources/Model/Turn.cs new file mode 100644 index 0000000..b9071c4 --- /dev/null +++ b/Sources/Model/Turn.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Model +{ + public class Turn + { + public int DiceValue1 + { + get => diceValue1; + set + { + if (value > 6) + { + throw new ArgumentException("a Case must have a value lower or equal to 12"); + } + diceValue1 = value; + } + } + private int diceValue1; + + public int DiceValue2 + { + get => diceValue2; + set + { + if (value > 6) + { + throw new ArgumentException("a Case must have a value lower or equal to 12"); + } + diceValue2 = value; + } + } + private int diceValue2; + + public Turn(int diceValue1, int diceValue2) + { + DiceValue1 = diceValue1; + DiceValue2 = diceValue2; + } + } +}