From 68462dfbf159aef0993dffd058b91b36e648a233 Mon Sep 17 00:00:00 2001 From: Arafamamadouelaphi <92931011+Arafamamadouelaphi@users.noreply.github.com> Date: Sun, 2 Oct 2022 18:57:48 +0100 Subject: [PATCH] encapsulation des classes --- Sources/BowlingLib/Model/Equipe.cs | 15 ++-- Sources/BowlingLib/Model/Frame.cs | 117 ++++++++++++++++++++++++----- Sources/BowlingLib/Model/Joueur.cs | 1 + Sources/BowlingLib/Model/Lancer.cs | 5 +- Sources/BowlingLib/Model/Partie.cs | 11 +-- 5 files changed, 118 insertions(+), 31 deletions(-) diff --git a/Sources/BowlingLib/Model/Equipe.cs b/Sources/BowlingLib/Model/Equipe.cs index 0ac6688..b509224 100644 --- a/Sources/BowlingLib/Model/Equipe.cs +++ b/Sources/BowlingLib/Model/Equipe.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -10,6 +11,11 @@ namespace BowlingLib.Model public class Equipe { private string nom; + public ReadOnlyCollection Joueurs + { + get; + private set; + } private List joueurs; public string Nom @@ -17,17 +23,12 @@ namespace BowlingLib.Model get { return nom; } set { nom = value; } } - - public List Joueurs - { - get { return joueurs; } - set { joueurs = value; } - } + private int numero; public Equipe(string nom) { this.nom = nom; - joueurs = new List(); + Joueurs = new ReadOnlyCollection(joueurs); } public void AjouterJoueur(Joueur joueur) diff --git a/Sources/BowlingLib/Model/Frame.cs b/Sources/BowlingLib/Model/Frame.cs index 7638e41..38082cf 100644 --- a/Sources/BowlingLib/Model/Frame.cs +++ b/Sources/BowlingLib/Model/Frame.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -8,29 +9,111 @@ namespace BowlingLib.Model { public class Frame { - public int Numero { get; set; } + const int MAX_QUILLE = 10; + public int Numero { + get + { return numero; } + set + { + this.numero = value; + } + } + private int numero; - public int QuillesRestantes { get; set; } - public int QuillesTombees { get; set; } + public int QuillesRestantes + { get + { + return quillesRestantes; + } + set + { + this.quillesRestantes = value; + } + } + private int quillesRestantes; - public bool IsStrike { get; set; } + public int QuillesTombees + { + get + { + return QuillesTombees; + } + set + { + this.QuillesTombees = value; + } + } + private int quillesTombees; + + public bool IsStrike { + get { + return isStrike; + } + set{ + this.isStrike = value; + } + } + private bool isStrike; - public bool IsSpare { get; set; } + public bool IsSpare + { + get + { + return isPark; + } + set + { + this.isPark = value; + } + } + private bool isPark; - public bool IsFinished { get; set; } + public bool IsFinished + { + get + { + return isFinished; + } + set + { + this.isFinished = value; + } - public Lancer Lancer1 { get; set; } + } + private bool isFinished; - public Lancer Lancer2 { get; set; } + public Lancer Lancer1 + { + get + { + return lancer1; + } + set + { + this.lancer1 = value; + } + } + private Lancer lancer1; - public Lancer Lancer3 { get; set; } + public Lancer Lancer2 + { + get { return lancer2; } + set { this.lancer2 = value; } + } + private Lancer lancer2; + public Lancer Lancer3 + { + get { return lancer3; } + set { this.lancer3 = value; } + } + private Lancer lancer3; public Frame(int numero) { this.Numero = numero; - this.QuillesRestantes = 10; + this.QuillesRestantes = MAX_QUILLE; this.IsFinished = false; this.IsStrike = false; this.IsSpare = false; @@ -54,7 +137,7 @@ namespace BowlingLib.Model this.Lancer1 = new Lancer(quillesTombees); this.QuillesRestantes -= quillesTombees; this.QuillesTombees += quillesTombees; - if (quillesTombees == 10) + if (quillesTombees == MAX_QUILLE) { this.IsStrike = true; } @@ -66,7 +149,7 @@ namespace BowlingLib.Model this.QuillesTombees += quillesTombees; if (this.IsStrike) { - if (quillesTombees == 10) + if (quillesTombees == MAX_QUILLE) { this.IsStrike = true; } @@ -77,7 +160,7 @@ namespace BowlingLib.Model } else { - if (quillesTombees + this.Lancer1.QuillesTombees == 10) + if (quillesTombees + this.Lancer1.QuillesTombees == MAX_QUILLE) { this.IsSpare = true; } @@ -90,7 +173,7 @@ namespace BowlingLib.Model this.QuillesTombees += quillesTombees; if (this.IsStrike) { - if (quillesTombees == 10) + if (quillesTombees == MAX_QUILLE) { this.IsStrike = true; } @@ -101,7 +184,7 @@ namespace BowlingLib.Model } else if (this.IsSpare) { - if (quillesTombees + this.Lancer2.QuillesTombees == 10) + if (quillesTombees + this.Lancer2.QuillesTombees == MAX_QUILLE) { this.IsSpare = true; } @@ -112,7 +195,7 @@ namespace BowlingLib.Model } else { - if (quillesTombees + this.Lancer2.QuillesTombees == 10) + if (quillesTombees + this.Lancer2.QuillesTombees == MAX_QUILLE) { this.IsSpare = true; } @@ -139,7 +222,7 @@ namespace BowlingLib.Model } this.QuillesRestantes -= quillesTombees; this.QuillesTombees += quillesTombees; - if (quillesTombees == 10) + if (quillesTombees == MAX_QUILLE) { this.IsStrike = true; } diff --git a/Sources/BowlingLib/Model/Joueur.cs b/Sources/BowlingLib/Model/Joueur.cs index cf10721..0339eb3 100644 --- a/Sources/BowlingLib/Model/Joueur.cs +++ b/Sources/BowlingLib/Model/Joueur.cs @@ -25,6 +25,7 @@ namespace BowlingLib.Model get { return pseudo; } private set { pseudo = value; } } + } } diff --git a/Sources/BowlingLib/Model/Lancer.cs b/Sources/BowlingLib/Model/Lancer.cs index ad447ce..52c23e7 100644 --- a/Sources/BowlingLib/Model/Lancer.cs +++ b/Sources/BowlingLib/Model/Lancer.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -10,10 +11,10 @@ namespace BowlingLib.Model { private int quillesTombees; - public int QuillesTombees + public int QuillesTombees { get { return quillesTombees; } - set + private set { if (value < 0 || value > 10) { diff --git a/Sources/BowlingLib/Model/Partie.cs b/Sources/BowlingLib/Model/Partie.cs index 9c78293..55faf52 100644 --- a/Sources/BowlingLib/Model/Partie.cs +++ b/Sources/BowlingLib/Model/Partie.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -8,20 +9,20 @@ namespace BowlingLib.Model { public class Partie { + public ReadOnlyCollection Frames; + public Joueur Joueur { get; private set; } - public Joueur Joueur { get; set; } - - public List Frames { get; set; } + private List frames; public Partie(Joueur joueur) { this.Joueur = joueur; - Frames = new List(); + Frames = new ReadOnlyCollection(frames); } public void AddFrame(Frame frame) { - Frames.Add(frame); + frames.Add(frame); } public int? GetScore()